Веб-API стали очень важной темой в прошлом году. Мы в WeStartU каждый день работаем с разными серверными системами, поэтому мы знаем о важности правильного соглашения об именах для API.

По сути, RESTful API оказывается просто набором URI, HTTP-вызовов этих URI и некоторых JSON и / или XML-представлений ресурсов, многие из которых будут содержать реляционные ссылки.

Каждый ресурс имеет свой собственный адрес или URI - каждая интересная информация, которую может предоставить сервер, отображается как ресурс.

Именование ресурсов, возможно, является наиболее обсуждаемой и наиболее важной концепцией, которую необходимо усвоить при создании понятного, легко используемого API веб-службы. Когда ресурсы названы правильно, API интуитивно понятен и прост в использовании. При плохом исполнении тот же API может показаться нелепым, его сложно использовать и понять.

API RESTful написаны для потребителей. Имя и структура URI должны передавать смысл этим потребителям. Часто бывает трудно понять, какими должны быть границы данных, но, разобравшись с вашими данными, вы, скорее всего, будете готовы нанести удар и что имеет смысл возвращаться в качестве представления вашим клиентам. Дизайн для ваших клиентов, а не для ваших данных.

URI должны следовать предсказуемой иерархической структуре для повышения понятности и, следовательно, удобства использования: предсказуемой в том смысле, что они согласованы, иерархической в ​​том смысле, что данные имеют структуру - отношения. Это не правило или ограничение REST, но оно улучшает API.

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

  1. Должно быть просто
  2. Должен быть интуитивно понятным
  3. Всегда должен быть последовательным
  4. Следует избегать верблюжьих шапок. Обычно используются строчные буквы.
  5. Следует использовать тире вместо подчеркивания
  6. Называя API, считайте его папкой. Следуйте шаблону именования, аналогичному структуре папок.
  7. Использовать иерархию
  8. Самым важным моментом, который следует учитывать при разработке API, является сохранение номера версии в API.

Должны ли мы действительно добавлять номер версии в URL-адреса API?

Сохранение номера версии в вашем API, вероятно, является важным шагом при разработке API, но возникает вопрос, зачем нам это нужно? Мы создаем API, чтобы возвращать некоторый ответ JSON или XML, так что какой смысл в номере версии? Хотя может показаться бесполезным поддерживать номер версии, но это действительно важно. Предположим, вы создаете систему с большим количеством API, используемых различными клиентами. Теперь в какой-то момент мы хотим изменить API, и ответ API также изменится. В этом случае вместо изменения API мы должны предпочесть добавить новый API и оставить старый API как есть. Это не сломает клиентское приложение, использующее старый API, у нас есть новый API. Позже в какой-то момент мы можем отказаться от этого API, и это поможет в плавном переходе от старого API к новому. Этот подход полезен, но каждый раз поддержание нового набора URI является сложной задачей, а использование номера версии намного полезнее.

Например, у нас может быть какой-то API, который возвращает список пользователей - v1 / users /

Теперь в какой-то момент мы модифицируем API, поэтому вместо поддержки отдельного URL-адреса мы можем просто увеличить номер версии - v2 / users /

Примеры наименования API

  • v1 / users - список пользователей
  • v1 / users / 1 - пользователь с идентификатором 1
  • v1 / users / 1 / organization - организации, к которым принадлежит пользователь
  • v1 / organization - список организаций
  • v1 / organization / 1 - Организация №1
  • v1 / organization / 1 / users - пользователи для этой организации.

Альтернативой может быть использование строки запроса для фильтрации:

  • v1 / users возвращает список всех пользователей
  • v1 / users? organization = 123 возвращает список пользователей, связанных с этой организацией.