body - swagger parameters in header
¿Cómo describir este cuerpo de solicitud POST JSON en OpenAPI(Swagger)? (2)
Tengo una solicitud POST que utiliza el siguiente cuerpo de solicitud JSON. ¿Cómo puedo describir este cuerpo de solicitud usando OpenAPI (Swagger)?
{
"testapi": {
"testapiContext": {
"messageId": "kkkk8",
"messageDateTime": "2014-08-17T14:07:30+0530"
},
"testapiBody": {
"cameraServiceRq": {
"osType": "android",
"deviceType": "samsung555"
}
}
}
}
Hasta ahora probé lo siguiente, pero estoy atascado en la definición del schema
cuerpo.
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"
}
Quiero definir el cuerpo de entrada en línea, como una muestra para la documentación.
La forma más legible de incluir un escalar de múltiples líneas en YAML es mediante el uso del estilo literal del bloque . Esto requiere que cambie su ejemplo de JSON solo mediante la sangría (que se eliminará si recupera el valor de la clave):
.
.
produces:
- application/json
example: |
{
"testapi": {
"testapiContext": {
"messageId": "kkkk8",
"messageDateTime": "2014-08-17T14:07:30+0530"
},
"testapiBody": {
"cameraServiceRq": {
"osType": "android",
"deviceType": "samsung555"
}
}
}
}
paths:
/getCameraParameters:
.
.
(para mayor claridad, puede poner una línea nueva adicional o dos antes de la clave escalar de paths
, que se recortan de forma predeterminada en los escalares de estilo de bloques literales).
Lo hice funcionar con:
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