Эквивалент строкового ($ бинарного) сваггера в контроллере - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть описание чванства. Там заголовок multipart / form-data отправляется как запрос. Файл и json отправлены. Все это в теле. У меня возникли проблемы с написанием DTO. Свэггер заявляет, что я должен отправить тип "string ($ binary)". Зачем этот тип писать в dto? байт []? или MultipartFile? Я обращусь к контроллеру через restTemplate.

Swagger (поле с именем DATA):

    ....
   /outcome_docs:
    post:
      operationId: getOutcomeDocs
      tags:
        - outcome_docs
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: "#/components/schemas/OutcomeDoc"
    ....
    OutcomeDoc:
      type: object
      description: Some document
      properties:
        uuid:
          description: Identifier
          type: string
          format: uuid
        format:
          description: Format type
          type: string
          enum:
            - zip
            - folder
        system:
          description: Some system
          type: string
        status:
          description: Some status
          type: string
          enum:
            - new
            - uploading
            - uploaded
        createDate:
          description: date
          type: string
          format: date-time
        updateDate:
          type: string
          format: date-time
        data:
          description: file or link to file
          type: string
          format: binary

Мой DTO

public class ParamsDto {
    String uuid;

    FormatEnum format;

    String system;

    StatusEnum status;

    String createDate;

    String updateDate;

    byte[] data;

// setter,getter, constructor
}

Контроллер

@PostMapping(value = "/outcome_docs", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public void outcomeDocsRequests(@RequestBody ParamsDto requests){
        System.out.println("Success");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...