ONAP Guidelines
Finally found general ONAP Advise:
"The API specification should describe the right HTTP status code to return the client.
Status codes should align with IETF's HTTP Status Code Registry: https://www.ietf.org/assignments/http-status-codes/http-status-codes.xml"
Agreed CPS API(SPI) Exception Hierarchy
(see CCSDK-2871 DP: Long-term Java API(s)
- CPSValidationException
- CpsAdminException
- DataspaceNotFoundException
- SchemaSetNotFoundException
- SchemaSetAlreadyDefinedException
- ModelValidationException
- SpecificException1
- SpecificException2
- DataValidationException
- SpecificException3
- SpecificException4
- PathValidationException
- SpecificException5
- CpsAdminException
*Note we might have to move these 'common' exceptions classes to the SPI just like we did with the common data objects
Vertical slice view of error scenarios
# | Use case | Scenario | DB (Spring) Response | SPI Response | Java API | REST API Response Code | Response Body | REST message | |
---|---|---|---|---|---|---|---|---|---|
1 | Add schema set to dataspace | schema set with same name already exists | DataIntegrityViolationException | SchemaSetAlreadyDefinedException | SchemaSetAlreadyDefinedException | 400 (bad request) | json error object | schema set xyz already defined for dataspace abc | |
2 | Add schema set to dataspace | dataspacename does not exist | No records (Optional, not present) | DataspaceNotFoundException | DataspaceNotFoundException | 400 (bad request) | json error object | TBD | |
3 | List anchors for dataspace name | dataspacename does not exist | No records (Optional, not present) | DataspaceNotFoundException | DataspaceNotFoundException | 400 (bad request)* | json error object | dataspace xyz not found | |
4 | List anchors for dataspace name | no anchor records in DB | 0 records | empty collection | empty collection | 200 (ok) | empty list | N/A | |
5 | |||||||||
6 | |||||||||
7 |
- simplicty, consitency, docuemnation