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:
parent
f9b3b7c923
commit
b317daa072
8
Makefile
8
Makefile
@ -5,13 +5,13 @@ download: 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
|
||||
|
||||
doc: openkarotz-openapi.json
|
||||
doc: openkarotz-openapi.yaml
|
||||
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
|
||||
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:
|
||||
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)
|
Loading…
x
Reference in New Issue
Block a user