Swagger - скрытый тип поля - PullRequest
       27

Swagger - скрытый тип поля

0 голосов
/ 05 марта 2019

Мне нужно скрыть значение в реализации 'toString ()'.Причина проста;Я хочу скрыть необработанное значение пароля от любой возможной регистрации.Я также пытался использовать

- type: string
- format: password

, но для Swagger-UI показывалось текстовое поле пароля.Есть ли способ добиться такого поведения?Мы используем шаблон .mustache, но я не могу найти какой-либо частичный / item / name для использования.Спасибо

Редактировать: Хорошо, я делюсь своим текущим решением, но не оптимальным.Я создал Java-бин «Пароль» (очень короткая презентация):

public class Password {
   private String value;
   public Password(String requestParam) {
      value = requestParam;
   }
   public String toString() {
      return "Password{<hidden||hashed value>}";
   }
}

Затем в swagger conf (swagger-codegen-config.json) я импортировал отображение:

{
   ...other configs such as lang, dateLibrary and so on...
   "importMappings": {
      "Password": "com.test.example.swagger.model.Password"
   }
}

И это определение пароля было использовано в swagger.yml:

...
definitions:
  Request:
    type: object
    properties:
      password:
        $ref: '#/definitions/Password'
      username:
        type: string
...

Хорошо, так что swagger-codegen сгенерирует класс «Request» с полем Password;Spring конструктор с одним параметром обрабатывается Spring;Строка из httpRequest правильно сопоставлена ​​с экземпляром пароля;В журнале нет необработанного значения, НО swagger-UI считает, что пользователь должен поместить объект для пароля вместо String: - /

...