Ok, but what if I want to tell the user what's wrong?
And I would love to handle the specific text of the message server side...

For example now I send 409 (CONFLICT) if somebody tries to register with the 
same email as another already registered user.
On the app I present a specific message for each 4XX error but I'd really like 
to handle the wording of those messages server side.



> On 23 Dec 2016, at 21:13, Pascal Robert <prob...@macti.ca> wrote:
> 
> It is a valid way. When the problem is the received data, the HTTP should be 
> in the 4xx range. I would return a 400 (Bad Request) with the JSON in the 
> body.
> De : webobjects-dev-bounces+probert=macti...@lists.apple.com 
> <webobjects-dev-bounces+probert=macti...@lists.apple.com> de la part de 
> Altera WO Team <webobje...@altera.it>
> Envoyé : 23 décembre 2016 07:13:45
> À : WebObjects-Dev Mailing List List
> Objet : ERRest - Proper handling of error conditions
>  
> Hi List,
> 
> I found myself a lot trying to elegantly handle EO creation errors when using 
> ERRest as backend for (mostly) iOS applications using JSON. 
> 
> For example, imagine i have an entity called User and for the user the 
> emailAddress field is unique in the DB, so I won't be able to create two User 
> objects with the same emailAddress.
> 
> I will have a UserController and inside that controller a createAction 
> method... If I just put the simplest implementation possible like that:
> 
> public WOActionResults createAction() {
>    User user = create(createFilter());
>    editingContext().saveChanges();
>    return response(user, showIDAndTokenFilter());
> }
> 
> In case of error the user will get a 500 response with Content-Type: 
> application/json but the response body won't be JSON but plain text of the 
> exception (exposing all the details of the SQL query which is of course a 
> security issue). That is a problem for example in iOS in which i get a 
> parsing error as the json can't be parsed.
> 
> The way in which I usually approach the issue is of course to always put the 
> saveChanges in a try-catch and then return 
> errorResponse(ERXHttpStatusCodes.SOME_ERROR_CODE); 
> and I use specific error codes for each of the possible cases (missing 
> fields, duplicate entries, etc). So basically I use 4xx errors for most of 
> the cases I catch and then fallback to 500 when something else happens. 
> 
> I'm not sure this is the best approach as I'm pretty sure it's not standard 
> so I'm asking for the wisdom of the community to try to come up with at least 
> the ERRest standard.
> I considered returning a proper JSON response with a status code of 500 and 
> some error message in a JSON Object, would it make sense?
> 
> Thanks,
> 
> 
> 
> Matteo

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to