This is more of a design question since I’m new to Scala and play.
I have an endpoint on my API which in turn calls other 3rd party services (in different private methods) using
play-ws. These services return JSON and I have to convert them into some case classes to do some manipulation before I send the final result back to the client. So the flow is like client -> endpoint -> multiple methods doing 3rd party calls -> endpoint -> client
I notice that the JSON serdes library doesn’t throw exceptions, but instead just has
JsError. Occasionally the parsing fails in the methods doing the 3rd party calls and I get some
JsErrors. I want to handle failed parsing properly. If any of the parsing fails, the client should definitely get an HTTP 400.
My question is what’s a decent way to do this? I was thinking doing something like
Right to give the value or the error if there is a problem. I also had another idea of making an exception just for this and then using
.recover, but this seemed a little smelly.
What are some good patterns here?