Приложение, над которым я работаю, имеет Controller
с отображениями, подобными моему примеру ниже:
@Api(tags = { "Some person API" })
@RestController
@RequestMapping("/person")
public class SomeController {
@ApiOperation(value = "GET person A or person B")
@GetMapping("{person:A|B}")
public void getPersonAorB(@PathVariable String person) {
// Perform action with person
}
@ApiOperation(value = "GET person C or person D")
@GetMapping("{person:C|D}")
public void getPersonCorD(@PathVariable String person) {
// Perform action with person
}
}
Хотя конечные точки работают нормально, Swagger не различает guish между конечными точками /person/{A|B}
и /person/{C|D}
. В результате, либо первое, либо второе сопоставление доступно в документации OpenAPI и в пользовательском интерфейсе swagger.
Я пробовал несколько вариантов, чтобы Дженкинс знал о различиях между конечными точками, таких как добавление аннотаций @Api
и @ApiOperation
к сопоставлениям, однако это не удалось. Я смог решить проблему, создав отдельное сопоставление для каждой конечной точки, например:
@RestController
@RequestMapping("/person")
public class SomeController {
@GetMapping("A")
public void getPersonA() {
// Perform action with person "A"
}
}
Однако я надеюсь, что может быть лучшее решение.