CPS-NCMP - DMI - SDNC Request and Response Mapping
References
CPS-577: Write data for cm handle passthrough:running - Post Operation for NCMPClosed
CPS-782: Spike: Inventory of HTTP Response Codes for all CPS interfacesClosed
CPS-777: Ensure all DMI operations use POST methodClosed
Overview
Since the DMI Plugin always needs an request body for at least the 'Additional Parameters' CPS_NCMP wil have to use PUT or POST to make a any (read or) write request.
The actual operation will be determine with 'operation' field in body. If this is not supplied 'read' wil be assumed as the default operation irrespective of the HTTP method used
Operation Mapping, Success scenarios
Client → CPS-NCMP | CPS-NCMP → DMI-Plugin | DMI-Plugin → SDNC-C | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
# | RESTful Method | Code | ResponseType | RESTful Method | Requestbody.operation | Code | ResponseType | Object Content | RESTful Method | Code | ResponseType |
1 | GET | 200 | ResponseEntity<Object> | POST | "read" | 200 | ResponseEntity<Object> | Object read | GET | 200 | ResponseEntity<Object> |
2 | POST | 201 | ResponseEntity<String> | "create" | {"resourceIdentifier": "xyz"} | POST | 2xx | ? | |||
3 | PUT | 200 | ResponseEntity<Object> | "update" | {"resourceIdentifier": "xyz"} | PUT | 2xx | ? | |||
4 | PATCH | 200 | ResponseEntity<String> | "patch" | {"resourceIdentifier": "xyz"} | PATCH | 2xx | ? | |||
5 | DELETE | 204 | ResponseEntity<Void> | "delete" | {"resourceIdentifier": "xyz"} | DELETE | 204 | ResponseEntity<void> |
Operation Mapping, Error scenarios (failed in mediation/SDN-C)
Client → CPS-NCMP | CPS-NCMP → DMI-Plugin | DMI-Plugin → SDNC-C | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
# | RESTful Method | Code | ResponseType | RESTful Method | Requestbody.operation | Code | ResponseType | Object Content | RESTful Method | Code | ResponseType |
1 | GET | 500 | ResponseEntity<String> | POST | "read" | 500 | ResponseEntity<String> | String with (original) error details | GET | 4xx | ? |
2 | POST | 500 | ResponseEntity<String> | "create" | String with (original) error detail | POST | 4xx | ? | |||
3 | PUT | 500 | ResponseEntity<String> | "update" | String with (original) error detail | PUT | 4xx | ? | |||
4 | PATCH | 500 | ResponseEntity<String> | "patch" | String with (original) error detail | PATCH | 4xx | ? | |||
5 | DELETE | 500 | ResponseEntity<String> | "delete" | String with (original) error detail | DELETE | 4xx | ResponseEntity<void> |
For more detail on the (error) response codes see: CPS Exceptions and REST APIs HTTP Response Codes#CPS-NCMP