...
create dataspace v1 | create dataspace v2 | |
---|---|---|
URI | POST: http://localhost:8883/cps/api/v1/dataspaces?dataspace-name=testDataspace | POST: http://localhost:8883/cps/api/v2/dataspaces?dataspace-name=testDataspace |
Response | HTTP Code : 201 content-type: plain/text response body : testDataspace | HTTP Code : 201 response body : NO CONTENT |
Note : all Once we migrate to v2, other existing APIs will be supported in 'v2' also.v1 and v2 without any impact.
Code changes to support v2 :
S.No | changes |
---|---|
1. | change cps-rest/docs/openapi.yaml file /v1/dataspaces: /v2/dataspaces: Note : since same URL support more then one actions (CRUD), we need to create two different URL in yml file. if all the CRUD operations to be supported in v2, we can make changes in yml file as below : /{version:v[1-2]}/dataspaces/{dataspace-name}/anchors/{anchor-name}/node: |
2. | create cpsAdminV2.yml file and add POST APIs(as below) which need to be changed . dataspaces: |
3. | add CreateV2 in components.yml as below: CreatedV2: |
4. | autogenerated code in CpsAdminApi.java @RequestMapping(value = "/v2/dataspaces", |
5. | Implement autogenerated method "createDataspaceV2" in AdminRestController.java @Override |
Note : once we migrate to v2, other existing APIs will be supported in v1 and v2 without any impact. Open Issues :
- Duplicate code is expected for few operations where one of the CRUD function should behave differently in different versions. we need to further investigate on how to overcome this problem