当前位置: 首页 > 知识库问答 >
问题:

swagger 2.0中JSON对象的模式类型是什么

卫弘懿
2023-03-14

我正在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格式。

当前状态:

预期状态:

共有2个答案

姜嘉荣
2023-03-14

提示:如果要在多个操作中重复使用同一架构-例如,有一本书和一个书,您可以在定义部分定义该架构,并在其他地方定义它。

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/book和GET/book?id=

公西博实
2023-03-14
  /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

您遇到的问题是必填字段中有一个拼写错误

fallowing是单对象响应的正确语法

 类似资料:
  • 问题内容: 我对Python 3中的和类有些困惑。也许有人可以消除我的困惑或提供一些其他信息。 我目前的理解是,每个类(除外)都从称为的基类继承。但是每个类(包括)也是该类的一个实例,它是自身的实例,并且也从继承。 我的问题是: 是否有一个原因/设计决策,为什么是的实例并从中继承?对象的/ class是否也可以是对象本身? 类()如何成为其自身的实例? 哪一个是真正的基类或? 我一直认为这将是最“

  • 我想把下面的json对象存储到postgresql数据库中。 你能告诉我在PostgreSQL中应该使用什么数据类型吗?提前谢了。

  • 问题内容: Selenium WebDriver中的页面对象模式是什么? 它的用途是什么?我们如何在Selenium WebDriver中使用它? 示例将不胜感激。 问题答案: 文档已经涵盖了这一点。如果您有任何具体问题,请随时编辑您的主要帖子。 官方: Selenuim Wiki上的页面对象和PageFactory。 Selenium官方网站上的页面对象设计模式。 非官方的: 进行Google搜

  • 问题内容: 我的项目中有一些模型类,例如,等等,它们具有多个字段及其setter-getter方法,我需要 通过套接字 与客户端和服务器之间 来回交换这些类的对象作为JSONObject 。 有什么方法可以直接从模型类的对象创建,以使对象的字段成为键,而该模型类对象的值成为此JSONObject的值。 例: 我创建JSON对象为: 这让我有点像: 请注意,在我的某些模型类中,某些属性本身 是其他模

  • 我知道number包括integer,但我可以明确定义一个“type”:“integer”。我是说这会违反规范吗?