Я столкнулся с некоторыми проблемами при создании REST-API.
Я хочу, чтобы у некоторых API были разные параметры.
Например:
path?include="stack"
path?exclude="overflow"
Я думал два пути.
- Первое: Create API может получать все параметры и обрабатывать в контроллере.
@GetMapping
public ResponseEntity getByFilter(@RequestParam @Nullable final String exclude,
@RequestParam @Nullable final String include){
// any process to distinguish.
}
- Второе: создание нескольких API может получить один параметр.
@GetMapping(params = "include")
public ResponseEntity getByInclude(@RequestParam final String include){
// do anything
}
@GetMapping(params = "exclude")
public ResponseEntity getByInclude(@RequestParam final String exclude){
// do anything
}
Но у обоих проблемы.
Первое: логика будет увеличена на параметры.
Второе: SwaggerDocument, который я использовал для SpringBoot, не может поддерживать один и тот же путь, разные параметры. Если я использую «enableUrlTemplating», мои команды будут управлять SwaggerDocument вручную.
Как я могу решить эти проблемы?
Спасибо за чтение.