From 2f5197ee7978b8b490bc5c7e438192b01f22b5e3 Mon Sep 17 00:00:00 2001 From: Sylvain Renault Date: Tue, 28 May 2024 16:12:53 +0000 Subject: [PATCH] Update README.md --- README.md | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 89 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b469ab5..3d08019 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,89 @@ -# World Storage Python Client - -This repository is part of the outcomes of the Specialist Task Force 620 focusing on the authoring of a World Representation as part of the ETSI ISG Augmented Reality Framework architecture (https://www.etsi.org/deliver/etsi_gs/ARF/001_099/003/01.01.01_60/gs_ARF003v010101p.pdf). -The set of the World Representation authoring components includes: -• The C++ and C# source code for servers and clients generated from OpenAPI available here (https://forge.etsi.org/rep/arf/arf005) -• A Unity plugin and a Unity editor for authoring and accessing a World Representation hosted on a World Storage server. -All these components are available under the ETSI Labs group “World Storage API Helpers”: https://labs.etsi.org/rep/arf/world-storage-api-helpers -If you wish to contribute to this project or any other projects in the context of the ETSI ISG Augmented Reality Framework architecture, please refer to the "How to get involved in an ISG" section on the ETSI website +*This repository is part of the outcomes of the Specialist Task Force 669 focusing on the communication between a World Analysis and World Representation components as part of the ETSI ISG Augmented Reality Framework architecture (https://www.etsi.org/deliver/etsi_gs/ARF/001_099/003/01.01.01_60/gs_ARF003v010101p.pdf).* +*The set of the World Representation authoring components includes:* + +*• The C++ and C# source code for servers and clients generated from OpenAPI available here (https://forge.etsi.org/rep/arf/arf005)* + +*• A Unity plugin and a Unity editor for authoring and accessing a World Representation hosted on a World Storage server.* + +*All these components are available under the ETSI Labs group “World Storage API Helpers”: https://labs.etsi.org/rep/arf/world-storage-api-helpers* + +*If you wish to contribute to this project or any other projects in the context of the [ETSI ISG Augmented Reality Framework architecture](https://www.etsi.org/committee/1420-arf), please refer to the ["How to get involved in an ISG" section on the ETSI website](https://www.etsi.org/how-to-get-involved-in-an-isg)* + +--- + +# Description + +This repo should be used to construct a Python server compliant to the ARF World Storage API. It uses auto-generated python server code. We propose to use the open source OpenAPI-Generator for this. + + +## Repo Content + +| | Files / Folders | Description | +|:-:|:--------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| 📂 | openapi | A git submodule (ForgeETSI ) pointing to the repo containing the API specification file | +| 📂 | client | The folder where the python code will be generated, the openapi generator is set to not overwrite some files used to test the client system | + +## Requirements + +What you need: + +1. Installed npm: https://phoenixnap.com/kb/install-node-js-npm-on-windows +2. Installed openapi generator with npm: https://openapi-generator.tech/docs/installation/ +3. Optional: Installed docker (recommanded): https://www.docker.com/get-started + +# Code Generation + +We provide the file `.openapi-generator-ignore` in `client`, which prevents openapi-generator to override some adapted files. + +## Auto-generate client code + +Use/define following setup for the config file `openapitools.json`: + +``` +{ + "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", + "spaces": 2, + "generator-cli": { + "version": "5.3.0", + "generators":{ + "v1.1": { + "generatorName": "python", + "output": "./client", + "inputSpec": "./openapi/API/worldstorage/worldstorageopenapi.yaml", + "additionalProperties": { + } + } + } + } +} +``` + +Open a command shell and execute: +``` + npx openapi-generator-cli generate +``` + +# Use client within a Docker + +## Creating the python docker ## + +tbd + +open a command shell and generate docker by executing: +``` + build-iis-docker-ws.bat +``` + +## How to start (with Docker-Compose) +The easiest way is to use docker-compose: + +Open a command shell and use docker-compose (if necessary adapt docker-compose.yml) by executing`: +``` + docker-compose.bat +``` + +## How to stop +Open a command shell by executing in `server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage`: +``` + docker-compose down +``` -- GitLab