REST Resource Naming & @PathVariable аннотация - PullRequest
0 голосов
/ 28 мая 2018

Я читаю учебник по именованию ресурсов REST ...

http://api.example.com/device-management/managed-devices/{id}/scripts/{id}:clone

Это пример наилучшей практики в именовании, но я не знаю, как объявить ее с помощью @PathVariable аннотации и отличают одно {id} от {id}:clone

public ResponseEntity<?> clone (
HttpServletRequest request, 
@PathVariable long id, ...) {
..
}

1 Ответ

0 голосов
/ 28 мая 2018

Вам необходимо различать два идентификатора по имени переменной или по атрибуту value из @PathVariable, например:

@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,
) {
..
}
...