Jira | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Table of Contents |
---|
Issues and Decisions
# | Issue | Solution | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | API Generation method in DMI-Plugin | See
| |||||||||
2 | Backward compatibility move from <String> to <object> REST Interfaces for json objects | Need to verify backward compatibility for client URLs | These changes will introduce no changes at the client side. All users can continue to use the API as as they are using currently. This could be verified by executing the CSIT test of cps and dmi-plugin. Test by aditya puthuparambil |
What Is OpenAPI?
OpenAPI Specification (formerly Swagger Specification) is an API description format for REST APIs. An OpenAPI file allows you to describe your entire API, including:
...
components:
examples:
dataSample:
value:
test:bookstore:
bookstore-name: Chapters
categories:
- code: 01
name: SciFi
- code: 02
name: kids
summary: A sample data
Sample
...
response
...
using
...
examples
...
defined
...
in
...
components:
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
example:
$ref: 'components.yml#/components/examples/dataSample'
Sample
...
request
...
using
...
examples
...
defined
...
in
...
components:
requestBody:
required: true
content:
application/json:
schema:
type: string
examples:
dataSample:
$ref: 'components.yml#/components/examples/dataSample'
Examples for composite components:
DataAccessRequest:
type: object
properties:
operation:
type: string
enum: [ read, create, update, delete ]
example: create
dataType:
type: string
example: dataTypeValue
data:
type: string
example: data
cmHandleProperties:
$ref: '#/components/schemas/cmHandleProperties'
cmHandleProperties:
type: object
additionalProperties:
type: string
example:
- prop1: value
prop2: value
Schema Type for Request and Response
At present most of the requests are defined as schema type String for Request body json. These could be updated to object type. This will introduce below changes:
S. No | Summary | Current code | Expected code |
---|---|---|---|
1 | Changing the schema type in openapi. | content: | content: |
2 | Changes in Controller Changing the datatype to Object | public ResponseEntity<String> createNode | public ResponseEntity<String> createNode |
Converting jsonData to String while passing the data to service layer | cpsDataService.saveData(dataspaceName, anchorName, jsonData, | cpsDataService.saveData(dataspaceName, anchorName, jsonData.toString(), |
Note: These changes will introduce no changes at the client side. All users can continue to use the API as as they are using currently. This could be verified by executing the CSIT test of cps and dmi-plugin.