Генерация 2 методов с 2 различными типами носителей с использованием OPEN API - Spring boot - PullRequest
1 голос
/ 08 апреля 2019

В моем приложении для весенней загрузки есть 2 метода с таким же RequestMapping, один возвращает JSON, а другой returns byte[]

public class UserApiController implements UserApi

@RequestMapping(value="/getUser/{userId}",
    produces = {"application/json"},
    consumes = {"application/json"},
    method = RequestMethod.GET)
    public ResponseEntity<UserModel> getUser(@PathVariable("userId")String userId){
    //returns UserModel JSON 
    }

@RequestMapping(value="/getUser/{userId}",
    produces = {"application/pdf"},
    consumes = {"application/pdf"},
    method = RequestMethod.GET)
    public ResponseEntity<byte[]> getUserPDF(@PathVariable("userId")String userId){
    //returns byte[] of pdf

    }

Я генерирую интерфейсы через OpenApi, используя .yaml, используя openapi-generator-cli-3.3.0.jar Когда я генерирую интерфейс, мой интерфейс генерирует этот метод следующим образом

 @RequestMapping(value="/getUser/{userId}",
        produces = {"application/json","application/pdf"},
        method = RequestMethod.GET)
        public ResponseEntity<UserModel> getUser(@PathVariable("userId")String userId);

Как заставить его сделать 2 отдельных метода, а не один?

1 Ответ

1 голос
/ 09 апреля 2019

Согласно нашим комментариям под Вашим постом, это невозможно.

Цитата из спецификации :

OpenAPI определяет уникальную операцию как комбинациюпуть и метод HTTP.Это означает, что два метода GET или два метода POST для одного и того же пути недопустимы

...