diff --git a/API/openapi.yaml b/API/openapi.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7011bd0a3e0557234577988b007e5603e9fa1f2b --- /dev/null +++ b/API/openapi.yaml @@ -0,0 +1,214 @@ +openapi: "3.0.0" +info: + version: 0.0.2 + title: World Storage API + description: API ensuring interoperability between an authoring tool and a World Storage service + license: + name: BSD-3-clause + url: https://opensource.org/licenses/BSD-3-Clause +servers: + - url: http://localhost:8080 +paths: + /ping: + get: + summary: Test the server availability + responses: + '200': + description: OK + /admin: + get: + summary: Get the version of the API + operationId: getVersion + responses: + '200': + description: OK world storage. + content: + text/plain: + schema: + type: string + /trackables: + post: + summary: Create a trackable + operationId: addTrackable + tags: + - trackables + requestBody: + description: the trackable to be added to the world storage + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/trackable' + application/xml: + schema: + $ref: '#/components/schemas/trackable' + responses: + '200': + description: OK returns the UUID of the Trackable defined by the world storage. + content: + text/plain: + schema: + type: string + '201': + description: Null response + default: + description: unexpected error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + get: + summary: returns the list of all trackables defined by the world storage. + operationId: getTrackables + tags: + - trackables + responses: + 200: + description: OK returns all the Trackables defined by the world storage. + content: + application/json: + schema: + type : array + items : + $ref: "#/components/schemas/trackable" + 201: + description: Null response + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /trackables/{trackableId}: + get: + summary: Find a trackable by his ID + operationId: getTrackableById + tags: + - trackables + parameters: + - name: trackableId + in: path + description: ID of the trackable to retrieve + required: true + schema: + type: string + responses: + '200': + description: "successful operation" + content: + application/json: + schema: + $ref: '#/components/schemas/trackable' + '400': + description: "Invalid ID supplied" + '404': + description: "Trackable not found" + delete: + summary: Deletes a trackable + operationId: deleteTrackable + tags: + - trackables + parameters: + - name: trackableId + in: path + description: trackable id to delete + required: true + schema: + type: string + responses: + '200': + description: OK + '400': + description: Invalid ID supplied + '404': + description: trackable not found +components: + schemas: + trackable: + type: object + required: + - creatorUID + - trackableType + - trackableEncodingInformation + - trackablePayload + - unitSystem + - trackableDimension + - keyvalueTagList + properties: + creatorUID: + description: A Universally Unique IDentifier identifying the creator of the trackable + type: string + format: uuid + example: c75f6324-77a0-11ec-90d6-0242ac120003 + trackableType: + description: Extensible list of trackable types possibly handled by complient World Storage implementation + type: string + enum: [FIDUCIAL_MARKER, IMAGE_MARKER, MAP, OTHER] + example: FIDUCIAL_MARKER + trackableEncodingInformation: + description: Identifies targeted framework and version of the format. + $ref: '#/components/schemas/encodingInformationStructure' + trackablePayload: + description: The data provided to create the trackable in a specific format handled by the World Storage service. + type: string + format: byte + example: "10110101" + localCRS: + description: Coordinate reference system of the trackable, a 4*4 matrix (rowmajor) represented by a float vector + type: array + minItems: 16 + maxItems: 16 + items: + type: number + format: float + example: [-2, 1, -3, 4, + 4, 4, 4, 2, + 1, 0, -2, 1, + -1, -2, 0, 0] + unitSystem: + description: Unit of length + type: string + enum: [MM, CM, DM, M, DAM, HM, KM, INCH, FOOT, YARD, MILE] + example: M + trackableDimension: + description: Bounding box of the Trackable, {width, length, 0} for 2D trackables, {width, length, depth} for 3D trackables + type: array + items: + type: number + format: double + minItems: 3 + maxItems: 3 + example: [1,5,0] + keyvalueTagList: + description: List of additional parameters to be stored with the trackable. + type: object + additionalProperties: + type: array + items: + type: string + minItems: 1 + example: { "author" : ["james","donovan"], "image" : ["skater"]} + encodingInformationStructure: + required: + - dataFormat + - version + properties: + dataFormat: + description: Identifier of the target framework + type: string + enum: [HOLOLENS, ARKIT, ARCORE] + example : "HOLOLENS" + version: + description: The version of the format + type: string + example : "1.01" + Error: + required: + - code + - message + properties: + code: + type: integer + format: int32 + message: + type: string \ No newline at end of file diff --git a/API/openapitools.json b/API/openapitools.json new file mode 100644 index 0000000000000000000000000000000000000000..3b40e47a45fd988f38e0b885958ceb2cac4a6201 --- /dev/null +++ b/API/openapitools.json @@ -0,0 +1,7 @@ +{ + "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "5.3.0" + } +} diff --git a/doc/VSCode.md b/doc/VSCode.md index b219ce49fc9846989efc64025a91bda48e9ee6da..b419f633ad6c5812e4b66d777de0f6d62ba8862b 100644 --- a/doc/VSCode.md +++ b/doc/VSCode.md @@ -17,8 +17,9 @@ - [Markdown Snippets](#markdown-snippets) - [Snippets ranger](#snippets-ranger) - [Git Graph](#git-graph) + - [Swagger viewer](#swagger-viewer) -## VSCode vs VSCodium +## VSCode vs VSCodium VSCode is nice, but you can also use it's open source counterpart with the same functionalities and without the tracking and telemetry functionalities. @@ -90,3 +91,7 @@ Note : Call snippets from intelisense with CTRL + SPACE ### Git Graph GitGraph + +### Swagger viewer +Lets you preview and validate OpenAPI files. +GitGraph \ No newline at end of file diff --git a/doc/images/branchingPolicy.png b/doc/images/BranchingPolicy.png similarity index 100% rename from doc/images/branchingPolicy.png rename to doc/images/BranchingPolicy.png diff --git a/doc/images/VSCodeSwaggerViewer.jpg b/doc/images/VSCodeSwaggerViewer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc40334f0b603eaa347c99b3a9f1f8e999189713 Binary files /dev/null and b/doc/images/VSCodeSwaggerViewer.jpg differ