Я читаю учебник по именованию ресурсов REST ...
http://api.example.com/device-management/managed-devices/{id}/scripts/{id}:clone
Это пример наилучшей практики в именовании, но я не знаю, как объявить ее с помощью @PathVariable аннотации и отличают одно {id} от {id}:clone
@PathVariable
{id}
{id}:clone
public ResponseEntity<?> clone ( HttpServletRequest request, @PathVariable long id, ...) { .. }
Вам необходимо различать два идентификатора по имени переменной или по атрибуту value из @PathVariable, например:
value
@GetMapping("http://api.example.com/device-management/managed-devices/{idManagedDevice}/scripts/{idScript}" public ResponseEntity<?> clone (HttpServletRequest request, @PathVariable long idManagedDevice, @PathVariable long idScript, ) { .. }
Или:
@GetMapping("http://api.example.com/device-management/managed-devices/{id}/scripts/{idScript}" public ResponseEntity<?> clone (HttpServletRequest request, @PathVariable(value="id") long idOfManagedDevice, @PathVariable(value="idScript") long idOfScript, ) { .. }