J'ai une demande POST qui utilise le corps de demande JSON suivant. Comment puis-je décrire ce corps de demande à l'aide d'OpenAPI (Swagger)?
{
"testapi": {
"testapiContext": {
"messageId": "kkkk8",
"messageDateTime": "2014-08-17T14:07:30+0530"
},
"testapiBody": {
"cameraServiceRq": {
"osType": "Android",
"deviceType": "samsung555"
}
}
}
}
Jusqu'ici, j'ai essayé ce qui suit, mais je suis coincé dans la définition du corps schema
.
swagger: "2.0"
info:
version: 1.0.0
title: get camera
license:
name: MIT
Host: localhost
basePath: /test/service
schemes:
- http
consumes:
- application/json
produces:
- application/json
paths:
/getCameraParameters:
post:
summary: Create new parameters
operationId: createnew
consumes:
- application/json
- application/xml
produces:
- application/json
- application/xml
parameters:
- name: pet
in: body
description: The pet JSON you want to post
schema: # <--- What do I write here?
required: true
responses:
200:
description: "200 response"
examples:
application/json:
{
"status": "Success"
}
Je souhaite définir le corps de saisie en ligne, à titre d'exemple pour la documentation.
Je l'ai fait fonctionner avec:
post:
consumes:
- application/json
produces:
- application/json
- text/xml
- text/html
parameters:
- name: body
in: body
required: true
schema:
# Body schema with atomic property examples
type: object
properties:
testapi:
type: object
properties:
messageId:
type: string
example: kkkk8
messageDateTime:
type: string
example: '2014-08-17T14:07:30+0530'
testapiBody:
type: object
properties:
cameraServiceRq:
type: object
properties:
osType:
type: string
example: Android
deviceType:
type: string
example: samsung555
# Alternatively, we can use a schema-level example
example:
testapi:
testapiContext:
messageId: kkkk8
messageDateTime: '2014-08-17T14:07:30+0530'
testapiBody:
cameraServiceRq:
osType: Android
deviceType: samsung555
Le moyen le plus lisible d’inclure un scalaire multiligne dans YAML consiste à utiliser le style littéral de bloc . Cela nécessite que vous modifiiez votre exemple JSON uniquement à l'aide de l'indentation (qui sera supprimée si vous récupérez la valeur de la clé):
.
.
produces:
- application/json
example: |
{
"testapi": {
"testapiContext": {
"messageId": "kkkk8",
"messageDateTime": "2014-08-17T14:07:30+0530"
},
"testapiBody": {
"cameraServiceRq": {
"osType": "Android",
"deviceType": "samsung555"
}
}
}
}
paths:
/getCameraParameters:
.
.
(pour plus de clarté, vous pouvez placer une nouvelle ligne ou deux avant la clé scalaire paths
, elles sont coupées par défaut sur le style de bloc littéral scalaires.