Ресурсы для валидации URL для REST API - PullRequest
0 голосов
/ 22 февраля 2019

Учитывая следующий URL:

http://localhost:port/books/[:id]

, где [:id] представляет идентификатор книги.

Было бы целесообразно проверить, является ли значение id пустым или пустым?

Насколько я понимаю, каждый URL уникален, что приведет пользователей к определенному месту назначения.Таким образом, нет необходимости даже проверять [:id].

Итак, допустим, я проверял [: id].

У меня есть другой URL, который должен перечислить все книги

http://localhost:port/books

Разве это не противоречит?

1 Ответ

0 голосов
/ 22 февраля 2019

Он не будет конфликтовать, так как вызов

http://localhost:port/books/  # Notice the last slash

отличается от

http://localhost:port/books

, и они будут получены различными методами контроллера.

Например, в Java:

@GET
@Path("/resources/{id}/")
public Resource getResource(@PathParam("id") long id);

@GET
@Path("/resources")
public List<Resource> getAllResources();

Как мы видим, первый метод получения ресурса сопоставлен с /resources/{id}.

С другой стороны, второй метод получениявсе ресурсы отображаются на /resources.Это другая конечная точка в API.

Если вы вызовете первый метод с пустым id, API не сможет найти запрошенный ресурс (так как он нулевой).Этот NPE должен быть обработан каким-либо образом в вашем бэк-энде и возвращать соответствующий ответ во внешний интерфейс.

Вы можете проверить это полное руководство о RESTful событиях

...