проверки запроса весенней загрузки не работают - PullRequest
0 голосов
/ 14 марта 2020

Фон приложения

  • Spring boot version 1.5.12
  • Java bean-компоненты, сгенерированные с помощью swagger-codegen-maven-plugin

Проблема

Шаблоны сваггеров, созданные с использованием открытого API 3.0, были преобразованы в pojos с использованием swagger-codegen-maven-plugin ..

Вот генерация pojo

public class TestPojo {

  @JsonProperty("isNameValid")
   private Boolean isNameValid = null;

 @Schema(
    required = true,
    description = "Checks if name is Valid "
)
public Boolean isIsNameValid() {
    return this.isNameValid;
}

}

Вот используемый шаблон swagger

openapi: 3.0.1
info:
title: XM MNOLine Domain Definitions
description: |
version: "V0.0.1"

components:
 schemas:

  TestPojo:
      required:
        - isNameValid
      properties:
        isNameValid:
          type: boolean
          description: |
            Checks if name is Valid

В контроллере аннотации @Valid, похоже, не оказывают никакого влияния .. Все значения для поля "isNameValid" или его значения по-прежнему обрабатываются ..

 processRequest(@Valid @RequestBody TestPojo request)

Чего мне не хватает ..

Ответы [ 2 ]

0 голосов
/ 15 марта 2020

Похоже, об этой проблеме уже сообщалось .. https://github.com/swagger-api/swagger-codegen/issues/7058

0 голосов
/ 14 марта 2020

Если я правильно понимаю, вы хотите, чтобы ваше поле isNameValid присутствовало в запросе, иначе выдается исключение.

Таким образом, чтобы сделать ваше поле обязательным для запроса, вам нужно будет пометить его как @NotNull.

ex.

    public class TestPojo {

         @JsonProperty("isNameValid")
         @NotNull
         private Boolean isNameValid;

         public void setIsNameValid(Boolean isNameValid) {
             this.isNameValid = isNameValid;
         }

         public Boolean isNameValid() {
             return isNameValid;
         }

    }

Выше код не позволит null значения для этого поля, т.е. запрос должен иметь isNameValid.

Я надеюсь, что это решит вашу проблему.

Если я неправильно понял ваше требование, дайте мне знать и постараюсь решить вашу проблему.

РЕДАКТИРОВАТЬ

Привет, в настоящее время я не У меня есть какой-нибудь текущий проект с использованием swagger open api, поэтому я не могу его протестировать, но можете ли вы проверить Проверить пружинные контракты .

Я надеюсь, что это может быть полезно, иначе дайте мне знать.

Удачи!

...