The point for me is separation of transport layer and application layer, and each domain has its own errorhandling.
I have made my choice. And it seems I am not the only one on the world with this choice, which is good news thanks Bert pazospablo at hotmail.com schreef op 18-1-2015 om 19:52: > > The recommendations seem a little weak for me. > > > 1. Most REST services can not be accessed just by typing the url in > the browser. What about security tokens? Or header values? Or sending > PUT, POST, PATCH or DELETE? > > > 2. No serious developer will use just the browser and not any other > tools. This is plain dumb. We use a bunch of tools for dev and test, > from packet sniffers and REST testers, to javascript consoles and log > analyzers. > > > 3. REST services should be documented, so the developer knows for sure > what 404 means in each case and has the correct urls for every resource :) > > > > Sent from my LG Mobile > > ------ Original message------ > > *From: *Bert Verhees > > *Date: *Sun, Jan 18, 2015 9:46 AM > > *To: *openehr-technical at lists.openehr.org > <mailto:openehr-technical at lists.openehr.org>; > > *Subject:*Re: CRUD Restlet > > For information: > > See therecommendations by Ethan Cerami: Specialties: Cancer genomics, > bioinformatics, scientific computing, software engineering, project > management. > https://www.linkedin.com/in/ecerami > http://www.oreilly.com/pub/au/806 > > Read: > http://archive.oreilly.com/pub/post/restful_error_handling.html#__federated=1 > > Quoting: > > Conclusion: > > * *Human Readable Error Messages:* Part of the major appeal of REST > based web services is that you can open any browser, type in the > right URL, and see an immediate response -- no special tools > needed. However, HTTP error codes do not always provide enough > information. For example, if we take option 1 above, and request > and invalid book ID, we get back a 404 Error Code. From the > developer perspective, have we actually typed in the wrong host > name, or an invalid book ID? It's not immediately clear. In Option > 3 (DAS), we get back a blank page with no information. To view the > actual error code, you need to run a network sniffer, or point > your browser through a proxy. For all these reasons, I think > Option 4 has a lot to offer. It significantly lowers the barrier > for new developers, and enables all information related to a web > service to be directly viewable within a web browser. > * *Application Specific Errors:* Option 1 has the disadvantage of > not being directly viewable within a browser. It also has the > additional disadvantage of mapping all HTTP error codes to > application specific error codes. HTTP status codes are specific > to document retrieval and posting, and these may not map directly > to your application domain. For example, one of the DAS error > codes relates to invalid genomic coordinates (sequence coordinate > is out of bounds/invalid). What HTTP error code would we map to in > this case? > * *Machine Readable Error Codes:* As a third criteria, error codes > should be easily readable by other applications. For example, the > XooMLe application returns back only human readable error > messages, e.g. "Invalid Google API key supplied". An application > parsing a XooMLe response would have to search for this specific > error message, and this can be notoriously brittle -- for example, > the XooMLe server might simply change the message to "Invalid Key > Supplied". Error codes, such as those provided by DAS are > important for programmatic control, and easy creation of > exceptions. For example, if XooMLe returned a 1001 error code, a > client application could do a quick lookup and immediately throw > an /InvalidKeyException./ > > Based on these three criteria, here's my vote for best error handling > option: > > > * Use HTTP Status Codes for problems specifically related to HTTP, > and not specifically related to your web service. > * When an error occurs, always return an XML document detailing the > error. > * Make sure the XML error document contains both an error code, and > a human readable error message. For example: > > <error> > 1001 > <error_msg>Invalid Google API key supplied</error_msg> > </error> > > By following these three simple practices, you can make it > significantly easier for others to interface with your service, and > react when things go wrong. New developers can easily see valid and > invalid requests via a simple web browser, and programs can easily > (and more robustly) extract error codes and act appropriately. > > The Amazon.com <http://Amazon.com> web services API follows the > approach of returned XML document can specify an /ErrorMsg/ element. > XooMLe also follows this approach. (XooMLe provides a RESTful API > wrapper to the existing SOAP based Google API). > Another approach is by DAS ( Distributed Annotation System) which > always returns 200 if there was no HTTP-error and has error > information in the HTTP-header, which is less favorable, because it is > not human readable, as a browser does not display the HTTP-header. > > --- > End Quoting > > Best regards > Bert > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20150118/f6b08cbe/attachment-0001.html>