Как создать правильные URL-адреса API для получения данных - PullRequest
0 голосов
/ 14 февраля 2020

Я создаю простой API, который работает с географическими данными.

Некоторые URL выглядят очень просто, например:

GET /towns/{id}

или

GET /towns

Теперь я хотите получить город по псевдониму, должен ли я использовать этот вид URL?

GET /towns/alias/{alias}

Что если я также хочу получить список городов, расположенных рядом с определенным городом?

GET /towns/closest/{id}/radius/{radius}

Я понимаю, что мои URL могут быть любыми. Что такое канонический способ сделать это?

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

Я понимаю, что мои URL могут быть любыми. Что такое канонический способ сделать это?

На самом деле «канонического способа» создания URL-адресов нет, кроме канонического способа именования переменных - есть только локальное написание условные обозначения.

RF C 3986 различает иерархические и неиерархические данные:

Компонент пути содержит данные, обычно организованные в иерархической форме, которые вместе с данными в неиерархическом компоненте запросов (раздел 3.4) служит для идентификации ресурса в рамках схемы URI и полномочий по именованию (если есть)

Эффект от использования иерархических данных заключается в том, что вы можете использовать точечные сегменты для вычисления одного URI из другого.

Например,

/town/alias/{alias}
/alias/{alias}

Оба этих варианта написания "хороши", но /town/alias дает нам возможность использования точечных сегментов для указания идентификатора в /town

/town/alias/abc + ../123
  => /town/alias/../123 
  => /town/123

Это может быть удобно, когда позволяет повторно использовать представление для нескольких ресурсов в вашем erarchy.

0 голосов
/ 14 февраля 2020

Да, это возможно с помощью маршрутизации URL. Вы можете отправить любое количество параметров через URL.

Не могли бы вы подтвердить используемую вами технологию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...