Trace:
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
jvx:communication:rest_exceptionhandling [2019/07/09 09:20] admin |
jvx:communication:rest_exceptionhandling [2020/06/08 16:02] cduncan |
||
---|---|---|---|
Line 1: | Line 1: | ||
~~NOTRANS~~ | ~~NOTRANS~~ | ||
- | ~~Title: REST Exception handling~~ | + | ~~Title: REST Exception Handling~~ |
Our standard [[jvx:common:util:rest|REST services]] come with standard exception handling. This means that all server-side exceptions will send the http status code 400 (Bad Request) to the client. The implementation already checks some exception types and returns custom http status codes: | Our standard [[jvx:common:util:rest|REST services]] come with standard exception handling. This means that all server-side exceptions will send the http status code 400 (Bad Request) to the client. The implementation already checks some exception types and returns custom http status codes: | ||
Line 9: | Line 9: | ||
| InvalidPasswordException | 401 (Unauthorized) | | | InvalidPasswordException | 401 (Unauthorized) | | ||
- | If you want custom status codes, it's possible to throw **RestServiceException**. This Exception class supports custom status codes and error messages. | + | If you want custom status codes, it's possible to throw **RestServiceException**. This exception class supports custom status codes and error details. |
+ | <file java> | ||
+ | if (!isBookingAvailable()) | ||
+ | { | ||
+ | IBean details = new Bean(); | ||
+ | details.put("id", errorId); | ||
+ | details.put("message", "The booking feature isn't yet implemented!"); | ||
+ | |||
+ | throw new RestServiceException(501, details); | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | </file> |