2017-02-05 5 views
0

Я создаю API, у меня есть пользователь, который я могу запросить по телефону:Насколько конкретна маршрутизация API должна быть?

/api/request/user/{id}

Это прекрасно работает.

Скажет каждый пользователь имел набор навыков, может быть один навыком или 100.

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

Я был бы очень специфичен и сделать так, что вам придется позвонить:

/api/request/user/{id}/skills

Или это:

/api/request/skills/{id} (где {id} является пользователь из id)

хватает?

Есть ли стандарт API REST API, которому я должен следовать или он гибкий?

Любые советы приветствуются, спасибо.

ответ

1

Поскольку skills является собственностью пользователя, рассмотрим его как под-ресурс. Получение суб-ресурсов основано на URL-адресе вложенности (hierarchical way), поэтому /api/request/user/{id}/skills было бы здорово!

В /api/request/skills/{id} case id должен быть идентификатором навыка, чтобы ваш API был интуитивно понятным.

Также помните о наименовании convention. Будьте последовательны, ваш ресурс skills является множественным, поэтому давайте переименуем user в users.

Таким образом, чтобы подвести итог

/api/request/users/{user_id}

/api/request/users/{user_id}/skills

/api/request/skills/{skill_id}

было бы неплохо.

Смежные вопросы