Swagger 2.0中的JSON对象的模式types是什么?
我在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中只发送一个书的详细信息我应该采取什么模式types,因为我试过对象不工作。
{ "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
由于对象不工作,招摇并不显示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)。 考虑删除“获取”,只使用GET /books
和GET /book?id=...