次のJSON要求本文を使用するPOST要求があります。 OpenAPI(Swagger)を使用してこのリクエスト本文をどのように記述できますか?
{
"testapi": {
"testapiContext": {
"messageId": "kkkk8",
"messageDateTime": "2014-08-17T14:07:30+0530"
},
"testapiBody": {
"cameraServiceRq": {
"osType": "Android",
"deviceType": "samsung555"
}
}
}
}
これまでのところ、次のことを試しましたが、ボディ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"
}
ドキュメントのサンプルとして、入力本体をインラインで定義します。
私はそれを動作させました:
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
複数行スカラーをYAMLに含める最も読みやすい方法は、 ブロックリテラルスタイル を使用することです。これには、インデントを使用してのみJSONの例を変更する必要があります(キーの値を取得すると削除されます)。
.
.
produces:
- application/json
example: |
{
"testapi": {
"testapiContext": {
"messageId": "kkkk8",
"messageDateTime": "2014-08-17T14:07:30+0530"
},
"testapiBody": {
"cameraServiceRq": {
"osType": "Android",
"deviceType": "samsung555"
}
}
}
}
paths:
/getCameraParameters:
.
.
(わかりやすくするために、paths
スカラーキーの前に余分な改行を1つまたは2つ入れると、リテラルブロックスタイルスカラーで デフォルトでクリップされます になります。