Use YAML for specification
YAML is simpler for human to read/write than JSON, at least because it is less verbose. It is also richer as it let describe with comment and have multiline support.
This commit is contained in:
8
Makefile
8
Makefile
@@ -5,13 +5,13 @@ download: swagger-codegen-cli.jar
|
|||||||
swagger-codegen-cli.jar:
|
swagger-codegen-cli.jar:
|
||||||
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.20/swagger-codegen-cli-3.0.20.jar -O swagger-codegen-cli.jar
|
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.20/swagger-codegen-cli-3.0.20.jar -O swagger-codegen-cli.jar
|
||||||
|
|
||||||
doc: openkarotz-openapi.json
|
doc: openkarotz-openapi.yaml
|
||||||
mkdir -p html
|
mkdir -p html
|
||||||
java -jar swagger-codegen-cli.jar generate -i openkarotz-openapi.json -l html -o html
|
java -jar swagger-codegen-cli.jar generate -i openkarotz-openapi.yaml -l html -o html
|
||||||
|
|
||||||
python: openkarotz-openapi.json
|
python: openkarotz-openapi.yaml
|
||||||
mkdir -p python
|
mkdir -p python
|
||||||
java -jar swagger-codegen-cli.jar generate -i openkarotz-openapi.json -l python -o python -c config-python.json
|
java -jar swagger-codegen-cli.jar generate -i openkarotz-openapi.yaml -l python -o python -c config-python.json
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf doc python
|
rm -rf doc python
|
||||||
|
|||||||
@@ -1,205 +0,0 @@
|
|||||||
{
|
|
||||||
"openapi":"3.0.3",
|
|
||||||
"info":{
|
|
||||||
"title":"OpenKarotz API",
|
|
||||||
"decription":"Cf. http://www.openkarotz.org/",
|
|
||||||
"license": {
|
|
||||||
"name": "Apache 2.0",
|
|
||||||
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
|
|
||||||
},
|
|
||||||
"version":"3.10"
|
|
||||||
},
|
|
||||||
"paths":{
|
|
||||||
"/cgi-bin/status":{
|
|
||||||
"summary":"status",
|
|
||||||
"description":"Permet d’afficher des informations sur le karotz, la réponse est un tableau JSON avec les attributs",
|
|
||||||
"get":{
|
|
||||||
"summary":"get status",
|
|
||||||
"responses":{
|
|
||||||
"200":{
|
|
||||||
"description":"la liste des informations sur le karotz",
|
|
||||||
"content":{
|
|
||||||
"application/json": {
|
|
||||||
"schema":{
|
|
||||||
"type": "object",
|
|
||||||
"title": "status",
|
|
||||||
"properties": {
|
|
||||||
"version": {
|
|
||||||
"type": "string",
|
|
||||||
"description":"version des scripts installés"
|
|
||||||
},
|
|
||||||
"ears_disabled": {
|
|
||||||
"type": "integer",
|
|
||||||
"description":"1 si les oreilles on été désactivées, 0 sinon"
|
|
||||||
},
|
|
||||||
"sleep": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "1 si le lapin dors, 0 sinon"
|
|
||||||
},
|
|
||||||
"sleep_time": {
|
|
||||||
"type": "string",
|
|
||||||
"description":"si le lapin dors, contient un Timestamp de l’heure d’endormissement."
|
|
||||||
},
|
|
||||||
"led_color": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "couleur actuelle de la led"
|
|
||||||
},
|
|
||||||
"led_pulse": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "1 si le lapin respire, 0 si fixe."
|
|
||||||
},
|
|
||||||
"tts_cache_size": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "Nombre de phrase(s) dans le cache TTS."
|
|
||||||
},
|
|
||||||
"usb_stick_free_space": {
|
|
||||||
"oneOf": [
|
|
||||||
{ "type": "string"},
|
|
||||||
{ "type": "integer"}
|
|
||||||
],
|
|
||||||
"description": "Place libre sur la clé USB (Version lisible)"
|
|
||||||
},
|
|
||||||
"karotz_free_Space": {
|
|
||||||
"oneOf": [
|
|
||||||
{ "type": "string"},
|
|
||||||
{ "type": "integer"}
|
|
||||||
],
|
|
||||||
"description": "Place libre dans le Karotz (Version lisible)"
|
|
||||||
},
|
|
||||||
"eth_mac": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Adresse MAC adaptateur ethernet"
|
|
||||||
},
|
|
||||||
"wlan_mac": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Adresse MAC adaptateur WIFI"
|
|
||||||
},
|
|
||||||
"nb_tags": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "Nombre de tags enregistrés."
|
|
||||||
},
|
|
||||||
"nb_moods": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "Nombre d’humeurs installées."
|
|
||||||
},
|
|
||||||
"nb_sounds": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "Nombre de Sons Installés."
|
|
||||||
},
|
|
||||||
"nb_stories": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "Nombre d’Histoires Installées."
|
|
||||||
},
|
|
||||||
"karotz_percent_used_space": {
|
|
||||||
"type": "integer",
|
|
||||||
"description": "Espace utilisé dans la mémoire du Karotz"
|
|
||||||
},
|
|
||||||
"usb_percent_used_space": {
|
|
||||||
"oneOf": [
|
|
||||||
{ "type": "string"},
|
|
||||||
{ "type": "integer"}
|
|
||||||
],
|
|
||||||
"description": "Espace utilisé sur la clef USB"
|
|
||||||
},
|
|
||||||
"data_dir": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Emplacement des fichiers de donnés"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"example":{"version":"210","ears_disabled":"0","sleep":"1","sleep_time":"1398086161","led_color":"000000","led_pulse":"0","tts_cache_size":"1","usb_free_space":"-1","karotz_free_space":"144.0M","eth_mac":"00:13:3B:90:97:5D","wlan_mac":"00:0E:8E:2C:93:B2","nb_tags":"14","nb_moods":"305","nb_sounds":"15","nb_stories":"0","karotz_percent_used_space":"38","usb_percent_used_space":"","data_dir":"/usr/openkarotz"}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/cgi-bin/get_version": {
|
|
||||||
"summary": "get_version",
|
|
||||||
"description": "Renvoi les versions des différents composants",
|
|
||||||
"get": {
|
|
||||||
"summary": "get version",
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "Renvoi les versions des différents composants",
|
|
||||||
"content": {
|
|
||||||
"application/json": {
|
|
||||||
"schema":{
|
|
||||||
"type": "object",
|
|
||||||
"title": "versions",
|
|
||||||
"properties": {
|
|
||||||
"version" : {
|
|
||||||
"type": "string",
|
|
||||||
"description": "version des scripts installée."
|
|
||||||
},
|
|
||||||
"rootfs_version" : {
|
|
||||||
"type": "string",
|
|
||||||
"description": "version du firmware"
|
|
||||||
},
|
|
||||||
"patch_version" : {
|
|
||||||
"type": "string",
|
|
||||||
"description": "version des patchs installés"
|
|
||||||
},
|
|
||||||
"serial" : {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Numéro de série du lapin (Unique)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"example":{"version":"210","rootfs_version":"2.0.r8","patch_version":"213","serial":"61xxxxxxxxx8926xxxxxxxxxx016","return":"0"}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/cgi-bin/wakeup": {
|
|
||||||
"summary": "wakeup",
|
|
||||||
"description": "Permet de réveiller le lapin, si le paramètre silent est utilisé avec la valeur 1 aucun son n’est joué.",
|
|
||||||
"get": {
|
|
||||||
"summary": "wakeup karotz",
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "Permet de réveiller le lapin",
|
|
||||||
"content": {
|
|
||||||
"application/json": {
|
|
||||||
"example": {"return":"0","silent":"0"}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"parameters":[
|
|
||||||
{
|
|
||||||
"name": "silent",
|
|
||||||
"description": "si le paramètre silent est utilisé avec la valeur 1 aucun son n’est joué.",
|
|
||||||
"in": "query",
|
|
||||||
"required": false,
|
|
||||||
" allowEmptyValue": false,
|
|
||||||
"schema": {
|
|
||||||
"type": "integer"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"/cgi-bin/sleep": {
|
|
||||||
"tags":["state"],
|
|
||||||
"summary": "sleep",
|
|
||||||
"description": "Permet d'endormir le lapin.",
|
|
||||||
"get": {
|
|
||||||
"summary": "sleep karotz",
|
|
||||||
"operationId": "sleep",
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "Permet d'endormir le lapin",
|
|
||||||
"content": {
|
|
||||||
"application/json": {
|
|
||||||
"example": {"return":"0"}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
179
openkarotz-openapi.yaml
Normal file
179
openkarotz-openapi.yaml
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
openapi: 3.0.3
|
||||||
|
info:
|
||||||
|
title: OpenKarotz API
|
||||||
|
license:
|
||||||
|
name: Apache 2.0
|
||||||
|
url: https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
version: "3.10"
|
||||||
|
servers:
|
||||||
|
- url: /
|
||||||
|
paths:
|
||||||
|
/cgi-bin/status:
|
||||||
|
summary: status
|
||||||
|
description: Permet d’afficher des informations sur le karotz, la réponse est
|
||||||
|
un tableau JSON avec les attributs
|
||||||
|
get:
|
||||||
|
summary: get status
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: la liste des informations sur le karotz
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/status'
|
||||||
|
example:
|
||||||
|
version: "210"
|
||||||
|
ears_disabled: "0"
|
||||||
|
sleep: "1"
|
||||||
|
sleep_time: "1398086161"
|
||||||
|
led_color: "000000"
|
||||||
|
led_pulse: "0"
|
||||||
|
tts_cache_size: "1"
|
||||||
|
usb_free_space: -1
|
||||||
|
karotz_free_space: 144.0M
|
||||||
|
eth_mac: 00:13:3B:90:97:5D
|
||||||
|
wlan_mac: 00:0E:8E:2C:93:B2
|
||||||
|
nb_tags: "14"
|
||||||
|
nb_moods: "305"
|
||||||
|
nb_sounds: "15"
|
||||||
|
nb_stories: "0"
|
||||||
|
karotz_percent_used_space: "38"
|
||||||
|
usb_percent_used_space: ""
|
||||||
|
data_dir: /usr/openkarotz
|
||||||
|
/cgi-bin/get_version:
|
||||||
|
summary: get_version
|
||||||
|
description: Renvoi les versions des différents composants
|
||||||
|
get:
|
||||||
|
summary: get version
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: Renvoi les versions des différents composants
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/versions'
|
||||||
|
example:
|
||||||
|
version: "210"
|
||||||
|
rootfs_version: 2.0.r8
|
||||||
|
patch_version: "213"
|
||||||
|
serial: 61xxxxxxxxx8926xxxxxxxxxx016
|
||||||
|
return: "0"
|
||||||
|
/cgi-bin/wakeup:
|
||||||
|
summary: wakeup
|
||||||
|
description: Permet de réveiller le lapin, si le paramètre silent est utilisé
|
||||||
|
avec la valeur 1 aucun son n’est joué.
|
||||||
|
get:
|
||||||
|
summary: wakeup karotz
|
||||||
|
parameters:
|
||||||
|
- name: silent
|
||||||
|
in: query
|
||||||
|
description: si le paramètre silent est utilisé avec la valeur 1 aucun son
|
||||||
|
n’est joué.
|
||||||
|
required: false
|
||||||
|
style: form
|
||||||
|
explode: true
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: Permet de réveiller le lapin
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
example:
|
||||||
|
return: "0"
|
||||||
|
silent: "0"
|
||||||
|
/cgi-bin/sleep:
|
||||||
|
summary: sleep
|
||||||
|
description: Permet d'endormir le lapin.
|
||||||
|
get:
|
||||||
|
summary: sleep karotz
|
||||||
|
operationId: sleep
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: Permet d'endormir le lapin
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
example:
|
||||||
|
return: "0"
|
||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
status:
|
||||||
|
title: status
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
description: version des scripts installés
|
||||||
|
ears_disabled:
|
||||||
|
type: integer
|
||||||
|
description: 1 si les oreilles on été désactivées, 0 sinon
|
||||||
|
sleep:
|
||||||
|
type: integer
|
||||||
|
description: 1 si le lapin dors, 0 sinon
|
||||||
|
sleep_time:
|
||||||
|
type: string
|
||||||
|
description: si le lapin dors, contient un Timestamp de l’heure d’endormissement.
|
||||||
|
led_color:
|
||||||
|
type: string
|
||||||
|
description: couleur actuelle de la led
|
||||||
|
led_pulse:
|
||||||
|
type: integer
|
||||||
|
description: 1 si le lapin respire, 0 si fixe.
|
||||||
|
tts_cache_size:
|
||||||
|
type: integer
|
||||||
|
description: Nombre de phrase(s) dans le cache TTS.
|
||||||
|
usb_stick_free_space:
|
||||||
|
description: Place libre sur la clé USB (Version lisible)
|
||||||
|
oneOf:
|
||||||
|
- type: string
|
||||||
|
- type: integer
|
||||||
|
karotz_free_Space:
|
||||||
|
description: Place libre dans le Karotz (Version lisible)
|
||||||
|
oneOf:
|
||||||
|
- type: string
|
||||||
|
- type: integer
|
||||||
|
eth_mac:
|
||||||
|
type: string
|
||||||
|
description: Adresse MAC adaptateur ethernet
|
||||||
|
wlan_mac:
|
||||||
|
type: string
|
||||||
|
description: Adresse MAC adaptateur WIFI
|
||||||
|
nb_tags:
|
||||||
|
type: integer
|
||||||
|
description: Nombre de tags enregistrés.
|
||||||
|
nb_moods:
|
||||||
|
type: integer
|
||||||
|
description: Nombre d’humeurs installées.
|
||||||
|
nb_sounds:
|
||||||
|
type: integer
|
||||||
|
description: Nombre de Sons Installés.
|
||||||
|
nb_stories:
|
||||||
|
type: integer
|
||||||
|
description: Nombre d’Histoires Installées.
|
||||||
|
karotz_percent_used_space:
|
||||||
|
type: integer
|
||||||
|
description: Espace utilisé dans la mémoire du Karotz
|
||||||
|
usb_percent_used_space:
|
||||||
|
description: Espace utilisé sur la clef USB
|
||||||
|
oneOf:
|
||||||
|
- type: string
|
||||||
|
- type: integer
|
||||||
|
data_dir:
|
||||||
|
type: string
|
||||||
|
description: Emplacement des fichiers de donnés
|
||||||
|
versions:
|
||||||
|
title: versions
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
description: version des scripts installée.
|
||||||
|
rootfs_version:
|
||||||
|
type: string
|
||||||
|
description: version du firmware
|
||||||
|
patch_version:
|
||||||
|
type: string
|
||||||
|
description: version des patchs installés
|
||||||
|
serial:
|
||||||
|
type: string
|
||||||
|
description: Numéro de série du lapin (Unique)
|
||||||
Reference in New Issue
Block a user