Status code for /health endpoint ?
by Matthias Wessendorf
Hi,
we have a /health endpoint:
https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/jaxrs...
that gives indication if the DB and the supported push-networks are
reachable.
If all goes well, it returns '200' and a response like:
{"status":"ok","details":[{"description":"Database
connection","result":"connected","runtime":191,"test_status":"ok"},{"description":"Google
Cloud
Messaging","result":"online","runtime":143,"test_status":"ok"},{"description":"Apple
Push Network
Sandbox","result":"online","runtime":260,"test_status":"ok"},{"description":"Apple
Push Network
Production","result":"online","runtime":263,"test_status":"ok"},{"description":"Windows
Push
Network","result":"online","runtime":351,"test_status":"ok"}],"summary":"Everything
is ok"}
If something, like DB, is not reachable, it also returns '200', and
describes the problems in the JSON response:
{"status":"crit","details":[{"description":"Database
connection","result":"org.hibernate.exception.JDBCConnectionException:
could not extract
ResultSet","runtime":26,"test_status":"crit"},{"description":"Google Cloud
Messaging","result":"online","runtime":14,"test_status":"ok"},{"description":"Apple
Push Network
Sandbox","result":"online","runtime":32,"test_status":"ok"},{"description":"Apple
Push Network
Production","result":"online","runtime":211,"test_status":"ok"},{"description":"Windows
Push
Network","result":"online","runtime":149,"test_status":"ok"}],"summary":"There
is 1 error found"}
Questions:
* do we continue to return '200' in the later case?
* Or should we give a 500 if there is at least one problem ?
Please report your desire :-)
-Matthias
--
Matthias Wessendorf
blog: http://matthiaswessendorf.wordpress.com/
twitter: http://twitter.com/mwessendorf
8 years, 5 months