swagger 2.0 中 JSON 对象的模式类型是什么
What is the schema type for JSON object in swagger 2.0
我正在借助 Swagger 2.0 编写 API 文档。我生成了一个 API,其中响应在工作正常的书籍数组中。
[{
"id": 1,
"book_name": "The Complete Reference Java8",
"author": "Herbert Schidt",
"genre": "Technology"
}, {
"id": 2,
"book_name": "C Programming",
"author": "Dennis Ritchie",
"genre": "Technology"
}]
招摇
/fetchBooks:
get:
description: |
Returns an array of book objects.
responses:
200:
description: Successful response
schema:
title: ArrayOfBooks
type: array
items:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
好吧,我只想在 JSONObject
中将一本书的详细信息合二为一 API 我应该采用什么模式类型,因为我尝试过对象不起作用。
{
"id": 1,
"book_name": "The Complete Reference Java8",
"author": "Herbert Schidt",
"genre": "Technology"
}
招摇
/fetchBook:
get:
description: |
Returns a book object
parameters:
- name: id
in: query
description: Books Id's
reqrequired: true
type: integer
format: int
responses:
200:
description: Successful response
schema:
type: object <-- What type should I specify for JSONObject here
items:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
由于对象不工作,swagger 没有显示 JSON
格式。
当前状态:
预期状态:
/fetchBook:
get:
description: |
Returns a book object
parameters:
- name: id
in: query
description: Books Id's
required: true
type: integer
format: int
responses:
'200':
description: Successful response
schema:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
您遇到的问题是必填字段中的拼写错误
以下是单个对象响应的正确语法
提示:如果您想在多个操作中重复使用相同的架构 - 例如有一个 Book
和一个 ArrayOfBooks
,您可以在 definitions
部分定义架构,并在其他地方 $ref
定义它。
paths:
/fetchBooks:
get:
...
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/ArrayOfBooks' # <--------
/fetchBook:
get:
...
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/Book' # <--------
definitions:
Book:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
ArrayOfBooks:
type: array
items:
$ref: '#/definitions/Book' # <--------
此外,如果这是正在开发的新 API 而不是现有的 API,则 GET /fetchBooks
中的 "fetch" 是多余的(GET = fetch)。考虑删除 "fetch" 并仅使用 GET /books
和 GET /book?id=...
.
我正在借助 Swagger 2.0 编写 API 文档。我生成了一个 API,其中响应在工作正常的书籍数组中。
[{
"id": 1,
"book_name": "The Complete Reference Java8",
"author": "Herbert Schidt",
"genre": "Technology"
}, {
"id": 2,
"book_name": "C Programming",
"author": "Dennis Ritchie",
"genre": "Technology"
}]
招摇
/fetchBooks:
get:
description: |
Returns an array of book objects.
responses:
200:
description: Successful response
schema:
title: ArrayOfBooks
type: array
items:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
好吧,我只想在 JSONObject
中将一本书的详细信息合二为一 API 我应该采用什么模式类型,因为我尝试过对象不起作用。
{
"id": 1,
"book_name": "The Complete Reference Java8",
"author": "Herbert Schidt",
"genre": "Technology"
}
招摇
/fetchBook:
get:
description: |
Returns a book object
parameters:
- name: id
in: query
description: Books Id's
reqrequired: true
type: integer
format: int
responses:
200:
description: Successful response
schema:
type: object <-- What type should I specify for JSONObject here
items:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
由于对象不工作,swagger 没有显示 JSON
格式。
当前状态:
预期状态:
/fetchBook:
get:
description: |
Returns a book object
parameters:
- name: id
in: query
description: Books Id's
required: true
type: integer
format: int
responses:
'200':
description: Successful response
schema:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
您遇到的问题是必填字段中的拼写错误
以下是单个对象响应的正确语法
提示:如果您想在多个操作中重复使用相同的架构 - 例如有一个 Book
和一个 ArrayOfBooks
,您可以在 definitions
部分定义架构,并在其他地方 $ref
定义它。
paths:
/fetchBooks:
get:
...
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/ArrayOfBooks' # <--------
/fetchBook:
get:
...
responses:
200:
description: Successful response
schema:
$ref: '#/definitions/Book' # <--------
definitions:
Book:
type: object
properties:
id:
type: integer
book_name:
type: string
author:
type: string
genre:
type: string
ArrayOfBooks:
type: array
items:
$ref: '#/definitions/Book' # <--------
此外,如果这是正在开发的新 API 而不是现有的 API,则 GET /fetchBooks
中的 "fetch" 是多余的(GET = fetch)。考虑删除 "fetch" 并仅使用 GET /books
和 GET /book?id=...
.