从swaggerhub生成的spring引导代码无法在其他属性上抛出400

vxqlmq5t  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(190)

我已经登录到swaggerhub并生成了一个示例库存api,它是他们模板的一部分。在 codegen options 挑选出来的 spring 作为服务器。勾选 useBeanValidation 复选框。生成代码,测试代码。验证工作正常,除了一件事。我不想在post负载上允许任何附加属性。
注意:openapi规范没有指定“additionalproperties”标志。在我的理解中默认为“假”。我也试图明确指定相同的。但运气不好。添加additionalproperty时不会引发异常。
openapi规范

openapi: 3.0.0
servers:
  # Added by API Auto Mocking Plugin
  - description: SwaggerHub API Auto Mocking
    url: https://virtserver.swaggerhub.com/xxxx/apionopenApi3/1.0.0
info:
  description: This is a simple API
  version: "1.0.0"
  title: Simple Inventory API
  contact:
    email: you@your-company.com
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
tags:
  - name: admins
    description: Secured Admin-only calls
  - name: developers
    description: Operations available to regular developers
paths:
  /inventory:
    get:
      tags:
        - developers
      summary: searches inventory
      operationId: searchInventory
      description: |
        By passing in the appropriate options, you can search for
        available inventory in the system
      parameters:
        - in: query
          name: searchString
          description: pass an optional search string for looking up inventory
          required: false
          schema:
            type: string
        - in: query
          name: skip
          description: number of records to skip for pagination
          schema:
            type: integer
            format: int32
            minimum: 0
        - in: query
          name: limit
          description: maximum number of records to return
          schema:
            type: integer
            format: int32
            minimum: 0
            maximum: 50
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InventoryItem'
        '400':
          description: bad input parameter
    post:
      tags:
        - admins
      summary: adds an inventory item
      operationId: addInventory
      description: Adds an item to the system
      responses:
        '201':
          description: item created
        '400':
          description: 'invalid input, object invalid'
        '409':
          description: an existing item already exists
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryItem'
        description: Inventory item to add
components:
  schemas:
    InventoryItem:
      type: object
      additionalProperties: False
      required:
        - id
        - name
        - manufacturer
        - releaseDate
      properties:
        id:
          type: string
          format: uuid
          example: d290f1ee-6c54-4b01-90e6-d701748f0851
        name:
          type: string
          example: Widget Adapter
        releaseDate:
          type: string
          format: date-time
          example: '2016-08-29T09:12:33.001Z'
        manufacturer:
          $ref: '#/components/schemas/Manufacturer'
    Manufacturer:
      required:
        - name
      properties:
        name:
          type: string
          example: ACME Corporation
        homePage:
          type: string
          format: url
          example: 'https://www.acme-corp.com'
        phone:
          type: string
          example: 408-867-5309
      type: object
      additionalProperties: False

在post-api上得到了400。

{
    "id": "7f125802-7840-4ff0-8ddb-7c78c0948987",
    "name11111": "Widget Adapter",
    "releaseDate": "2016-08-29T09:12:33.001Z",
      "manufacturer": {
    "name": "ACME Corporation",
    "homePage": "",
    "phone": "408-867-5309"
        }
}

预计400,但没有得到这个有效载荷在岗位上

{
    "id": "7f125802-7840-4ff0-8ddb-7c78c0948983",
    "name": "Widget Adapter",
    "releaseDate": "2016-08-29T09:12:33.001Z",
      "manufacturer": {
    "name": "ACME Corporation",
    "homePage": "",
    "phone": "408-867-5309"
        },
    "newkey" : "newValue"

}

有谁能帮忙吗。。我想完全不允许其他属性,并对这些请求抛出400。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题