From 6d13f166f2e3d1c357677ad6f37f6e35238aeac6 Mon Sep 17 00:00:00 2001 From: "Rishi.Chail" Date: Tue, 26 Jan 2021 05:58:39 +0000 Subject: Ensure CPS REST API Specs conform to ONAP standards Issue-ID: CPS-25 Signed-off-by: Rishi.Chail Change-Id: I17fec852cf2dcb824dfc0ab7f00ebe4cfd9e09b5 --- cps-rest/docs/api/swagger/components.yaml | 127 ------------ cps-rest/docs/api/swagger/components.yml | 132 ++++++++++++ cps-rest/docs/api/swagger/cpsAdmin.yml | 230 +++++++++++---------- cps-rest/docs/api/swagger/cpsData.yml | 83 ++++---- cps-rest/docs/api/swagger/openapi.yml | 15 +- .../cps/rest/controller/DataRestController.java | 2 +- 6 files changed, 305 insertions(+), 284 deletions(-) delete mode 100644 cps-rest/docs/api/swagger/components.yaml create mode 100755 cps-rest/docs/api/swagger/components.yml mode change 100644 => 100755 cps-rest/docs/api/swagger/cpsData.yml mode change 100644 => 100755 cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java diff --git a/cps-rest/docs/api/swagger/components.yaml b/cps-rest/docs/api/swagger/components.yaml deleted file mode 100644 index bc7aa57e7a..0000000000 --- a/cps-rest/docs/api/swagger/components.yaml +++ /dev/null @@ -1,127 +0,0 @@ -components: - schemas: - ErrorMessage: - type: object - title: Error - properties: - status: - type: string - message: - type: string - details: - type: string - MultipartFile: - required: - - file - properties: - multipartFile: - type: string - description: multipartFile - format: binary - - parameters: - dataspaceNameInQuery: - name: dataspace-name - in: query - description: dataspace-name - required: true - schema: - type: string - dataspaceNameInPath: - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - anchorNameInPath: - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - schemaSetNameInQuery: - name: schema-set-name - in: query - description: schema-set-name - required: true - schema: - type: string - schemaSetNameInPath: - name: schema-set-name - in: path - description: schema-set-name - required: true - schema: - type: string - anchorNameInQuery: - name: anchor-name - in: query - description: anchor-name - required: true - schema: - type: string - xpathInQuery: - name: cps-path - in: query - description: cps-path - required: false - schema: - type: string - default: / - includeDescendantsOptionInQuery: - name: include-descendants - in: query - description: include-descendants - required: false - schema: - type: boolean - default: false - - responses: - NotFound: - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - Unauthorized: - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - Forbidden: - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - BadRequest: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - Conflict: - description: Conflict - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - Ok: - description: OK - content: - application/json: - schema: - type: object - Created: - description: Created - content: - text/plain: - schema: - type: string - NoContent: - description: No Content - content: {} diff --git a/cps-rest/docs/api/swagger/components.yml b/cps-rest/docs/api/swagger/components.yml new file mode 100755 index 0000000000..9e306cda5d --- /dev/null +++ b/cps-rest/docs/api/swagger/components.yml @@ -0,0 +1,132 @@ +components: + schemas: + ErrorMessage: + type: object + title: Error + properties: + status: + type: string + example: 400 + message: + type: string + example: Dataspace not found + details: + type: string + example: Dataspace with name D1 does not exist. + + MultipartFile: + required: + - file + properties: + multipartFile: + type: string + description: multipartFile + format: binary + example: http://example.com/examples/example.yang + + parameters: + dataspaceNameInQuery: + name: dataspace-name + in: query + description: dataspace-name + required: true + schema: + type: string + dataspaceNameInPath: + name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + anchorNameInPath: + name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + schemaSetNameInQuery: + name: schema-set-name + in: query + description: schema-set-name + required: true + schema: + type: string + schemaSetNameInPath: + name: schema-set-name + in: path + description: schema-set-name + required: true + schema: + type: string + anchorNameInQuery: + name: anchor-name + in: query + description: anchor-name + required: true + schema: + type: string + xpathInQuery: + name: cps-path + in: query + description: cps-path + required: false + schema: + type: string + default: / + includeDescendantsOptionInQuery: + name: include-descendants + in: query + description: include-descendants + required: false + schema: + type: boolean + default: false + + responses: + NotFound: + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Unauthorized: + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Forbidden: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + BadRequest: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Conflict: + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Ok: + description: OK + content: + application/json: + schema: + type: object + Created: + description: Created + content: + text/plain: + schema: + type: string + NoContent: + description: No Content + content: {} diff --git a/cps-rest/docs/api/swagger/cpsAdmin.yml b/cps-rest/docs/api/swagger/cpsAdmin.yml index 18ed1a2ecb..f1bac8dda5 100755 --- a/cps-rest/docs/api/swagger/cpsAdmin.yml +++ b/cps-rest/docs/api/swagger/cpsAdmin.yml @@ -1,184 +1,194 @@ dataspace: post: + description: Create a new dataspace tags: - cps-admin - summary: Create a new dataspace + summary: Create a dataspace operationId: createDataspace parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInQuery' + - $ref: 'components.yml#/components/parameters/dataspaceNameInQuery' responses: - 201: - $ref: 'components.yaml#/components/responses/Created' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' + '201': + $ref: 'components.yml#/components/responses/Created' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' dataspaceByDataspaceName: delete: + description: Delete the given dataspace - DRAFT tags: - cps-admin - summary: Delete the given dataspace - DRAFT + summary: Delete a dataspace operationId: deleteDataspace parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' responses: - 200: - $ref: 'components.yaml#/components/responses/Ok' - 204: - $ref: 'components.yaml#/components/responses/NoContent' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' + '200': + $ref: 'components.yml#/components/responses/Ok' + '204': + $ref: 'components.yml#/components/responses/NoContent' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' schemaSet: post: + description: Create a new schema set in the given dataspace tags: - cps-admin - summary: Create a new schema set in the given dataspace + summary: Create a schema set operationId: createSchemaSet parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/schemaSetNameInQuery' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/schemaSetNameInQuery' requestBody: required: true content: multipart/form-data: schema: - $ref: 'components.yaml#/components/schemas/MultipartFile' + $ref: 'components.yml#/components/schemas/MultipartFile' responses: - 201: - $ref: 'components.yaml#/components/responses/Created' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' + '201': + $ref: 'components.yml#/components/responses/Created' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' schemaSetBySchemaSetName: get: + description: Read a schema set given a schema set name and a dataspace tags: - cps-admin - summary: Read a schema set given a schema set and a dataspace + summary: Get a schema set operationId: getSchemaSet parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/schemaSetNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/schemaSetNameInPath' responses: - 200: - $ref: 'components.yaml#/components/responses/Ok' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' - 404: - $ref: 'components.yaml#/components/responses/NotFound' + '200': + $ref: 'components.yml#/components/responses/Ok' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' + '404': + $ref: 'components.yml#/components/responses/NotFound' + delete: + description: Delete a schema set given a schema set name and a dataspace tags: - cps-admin - summary: Delete schema set given a schema set and a dataspace + summary: Delete a schema set operationId: deleteSchemaSet parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/schemaSetNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/schemaSetNameInPath' responses: - 204: - $ref: 'components.yaml#/components/responses/NoContent' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' - 409: - $ref: 'components.yaml#/components/responses/Conflict' + '204': + $ref: 'components.yml#/components/responses/NoContent' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' + '409': + $ref: 'components.yml#/components/responses/Conflict' anchorsByDataspace: get: + description: Read all anchors, given a dataspace tags: - cps-admin - summary: Read all anchors, given a dataspace + summary: Get anchors operationId: getAnchors parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' responses: - 200: - $ref: 'components.yaml#/components/responses/Ok' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' - 404: - $ref: 'components.yaml#/components/responses/NotFound' + '200': + $ref: 'components.yml#/components/responses/Ok' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' + '404': + $ref: 'components.yml#/components/responses/NotFound' post: + description: Create a new anchor in the given dataspace tags: - cps-admin - summary: Create a new anchor in the given dataspace + summary: Create an anchor operationId: createAnchor parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/schemaSetNameInQuery' - - $ref: 'components.yaml#/components/parameters/anchorNameInQuery' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/schemaSetNameInQuery' + - $ref: 'components.yml#/components/parameters/anchorNameInQuery' responses: - 201: - $ref: 'components.yaml#/components/responses/Created' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' + '201': + $ref: 'components.yml#/components/responses/Created' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' anchorByDataspaceAndAnchorName: get: + description: Read an anchor given an anchor name and a dataspace tags: - cps-admin - summary: Read an anchor given a anchor and a dataspace + summary: Get an anchor operationId: getAnchor parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/anchorNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/anchorNameInPath' responses: - 200: - $ref: 'components.yaml#/components/responses/Ok' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' - 404: - $ref: 'components.yaml#/components/responses/NotFound' + '200': + $ref: 'components.yml#/components/responses/Ok' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' + '404': + $ref: 'components.yml#/components/responses/NotFound' delete: + description: Delete an anchor given an anchor name and a dataspace - DRAFT tags: - cps-admin - summary: Delete an anchor given a anchor and a dataspace - DRAFT + summary: Delete an anchor operationId: deleteAnchor parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/anchorNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/anchorNameInPath' responses: - 200: - $ref: 'components.yaml#/components/responses/Ok' - 204: - $ref: 'components.yaml#/components/responses/NoContent' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' \ No newline at end of file + '200': + $ref: 'components.yml#/components/responses/Ok' + '204': + $ref: 'components.yml#/components/responses/NoContent' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' diff --git a/cps-rest/docs/api/swagger/cpsData.yml b/cps-rest/docs/api/swagger/cpsData.yml old mode 100644 new mode 100755 index 97bf21a3e8..9abace2047 --- a/cps-rest/docs/api/swagger/cpsData.yml +++ b/cps-rest/docs/api/swagger/cpsData.yml @@ -1,35 +1,37 @@ nodesByDataspaceAndAnchor: get: + description: Get a node with an option to retrieve all the children for a given anchor and dataspace tags: - cps-data - summary: Get a node given an anchor for the given dataspace + summary: Get a node operationId: getNodeByDataspaceAndAnchor parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/anchorNameInPath' - - $ref: 'components.yaml#/components/parameters/xpathInQuery' - - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/anchorNameInPath' + - $ref: 'components.yml#/components/parameters/xpathInQuery' + - $ref: 'components.yml#/components/parameters/includeDescendantsOptionInQuery' responses: - 200: - $ref: 'components.yaml#/components/responses/Ok' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' - 404: - $ref: 'components.yaml#/components/responses/NotFound' + '200': + $ref: 'components.yml#/components/responses/Ok' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' + '404': + $ref: 'components.yml#/components/responses/NotFound' x-codegen-request-body-name: xpath post: + description: Create a node for a given anchor and dataspace tags: - cps-data - summary: Create a node for a given anchor for the given dataspace + summary: Create a node operationId: createNode parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' - - $ref: 'components.yaml#/components/parameters/anchorNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/anchorNameInPath' requestBody: required: true content: @@ -37,32 +39,33 @@ nodesByDataspaceAndAnchor: schema: type: string responses: - 201: - $ref: 'components.yaml#/components/responses/Created' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' + '201': + $ref: 'components.yml#/components/responses/Created' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' nodesByDataspace: get: + description: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT tags: - cps-data - summary: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT - operationId: getNodeByDataspace + summary: Get nodes + operationId: getNodesByDataspace parameters: - - $ref: 'components.yaml#/components/parameters/dataspaceNameInPath' + - $ref: 'components.yml#/components/parameters/dataspaceNameInPath' responses: - 200: - $ref: 'components.yaml#/components/responses/Ok' - 400: - $ref: 'components.yaml#/components/responses/BadRequest' - 401: - $ref: 'components.yaml#/components/responses/Unauthorized' - 403: - $ref: 'components.yaml#/components/responses/Forbidden' - 404: - $ref: 'components.yaml#/components/responses/NotFound' - x-codegen-request-body-name: requestBody \ No newline at end of file + '200': + $ref: 'components.yml#/components/responses/Ok' + '400': + $ref: 'components.yml#/components/responses/BadRequest' + '401': + $ref: 'components.yml#/components/responses/Unauthorized' + '403': + $ref: 'components.yml#/components/responses/Forbidden' + '404': + $ref: 'components.yml#/components/responses/NotFound' + x-codegen-request-body-name: requestBody diff --git a/cps-rest/docs/api/swagger/openapi.yml b/cps-rest/docs/api/swagger/openapi.yml index 57a11027a4..5b9e5f4b6c 100755 --- a/cps-rest/docs/api/swagger/openapi.yml +++ b/cps-rest/docs/api/swagger/openapi.yml @@ -3,11 +3,11 @@ info: title: ONAP Open API v3 Configuration Persistence Service description: Configuration Persistence Service is a Model Driven Generic Database version: "1.0.0" - contact: + contact: name: ONAP url: "https://onap.readthedocs.io" email: "onap-discuss@lists.onap.org" - license: + license: name: "Apache 2.0" url: "http://www.apache.org/licenses/LICENSE-2.0" x-planned-retirement-date: "202212" @@ -16,15 +16,18 @@ info: url: "cps_logo.png" servers: - - url: //localhost:8088/ + - url: //localhost:8088 tags: - - name: cps-rest - description: cps Resource + - name: cps-admin + description: cps Admin + - name: cps-data + description: cps Data paths: + /v1/dataspaces: $ref: 'cpsAdmin.yml#/dataspace' - /v1/dataspaces/{dataspace-name}/: + /v1/dataspaces/{dataspace-name}: $ref: 'cpsAdmin.yml#/dataspaceByDataspaceName' /v1/dataspaces/{dataspace-name}/anchors: diff --git a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java old mode 100644 new mode 100755 index 4f23a8a260..c39a9696e3 --- a/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java +++ b/cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java @@ -48,7 +48,7 @@ public class DataRestController implements CpsDataApi { } @Override - public ResponseEntity getNodeByDataspace(final String dataspaceName) { + public ResponseEntity getNodesByDataspace(final String dataspaceName) { return null; } -- cgit 1.2.3-korg