Newer
Older
*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 Python, C++ and C# source code for servers and clients generated from OpenAPI available here (https://forge.etsi.org/rep/arf/arf005)*
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
*• 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
```