Переопределить путь моего API в Springfox Swagger

Я использую Spring REST с Springfox Swagger, и у меня был такой метод, как

@RequestMapping(method = RequestMethod.POST, value = "/my-methd")
@ApiOperation(value = "My method")

и все работало нормально.

Теперь я заметил орфографическую ошибку в пути. У меня уже есть клиенты, использующие существующий API, поэтому я хотел бы поддерживать как старую, так и новую версии, но в документации должны отображаться только новые версии.

Я могу исправить это следующим образом:

@RequestMapping(method = RequestMethod.POST, value = {
   "/my-methd",  // Spelling mistake, deprecated
   "/my-method"  // To be used by new software
})
@ApiOperation(value = "My method")

Однако как старое, так и новое написание отображаются в документации Swagger.

Я хочу, чтобы оба работали, но в документации Swagger отображалось только новое написание.

@ApiOperation имеет возможность переопределить метод HTTP и многое другое, но, по-видимому, не путь.

Я могу что-нибудь здесь сделать?

(Я даже не могу пометить старый метод как «устаревший» в документации, поскольку документы взяты из аннотации метода, которая является общей для двух путей.)


person Adrian Smith    schedule 06.02.2018    source источник


Ответы (1)


Я бы предложил просто создать новый отдельный метод, один с ошибкой RequestMapping «/ my-methd», а второй - для правильного «/ my-method». Тогда легко пометить неправильно написанное как устаревшее. Также таким образом вы можете добавить в код правильные комментарии, чтобы в будущем его было легче поддерживать / удалять.

person zeisi    schedule 06.02.2018