Что такое URI и зачем он нужен в REST API - блог компании Клеверенс
Содержание
Что такое URI и зачем он нужен в REST API
URI (Uniform Resource Identifier) — это унифицированный идентификатор ресурса, то есть строка, которая однозначно определяет ресурс в интернете. В контексте REST API URI является обязательным элементом, так как он указывает на конкретный объект или коллекцию объектов, с которыми хочет взаимодействовать клиент.
REST (Representational State Transfer) построен на идее взаимодействия с ресурсами через универсальные и понятные адреса. Поэтому правильное построение и понимание URI имеет ключевое значение для проектирования API, соответствующего лучшим практикам. Без URI невозможен сам REST подход.
Проще говоря, URI — это "адрес" ресурса, как обычный url в браузере, только применяется для машинного взаимодействия. Современные API-интерфейсы, особенно в электронной коммерции, логистике и сервисных решениях, полагаются на четкую структуру URI, чтобы обеспечить масштабируемость и предсказуемость маршрутов.
Структура URI в REST API
Каждый URI состоит из нескольких компонентов. Некоторые из них обязательны, другие используются опционально. Вот основные части стандартного URI:
- Схема (Scheme): Протокол (например,
https
) - Хост (Host): Домен или IP, указывающий на сервер
- Путь (Path): Конкретный адрес ресурса внутри сервера
- Параметры запроса (Query Parameters): Фильтрация, сортировка, пагинация
Например, URI https://example.com/api/v1/products/123
означает запрос к ресурсу "продукт с ID 123" в версии 1 API.
Такая четкая структура помогает как разработчикам, так и системам понимать, какие ресурсы доступны, как к ним обращаться и что от них ожидать. Она также поддерживает масштабируемость REST API за счёт декомпозиции адресов по логике предметной области.
Как работает URI в REST API
В REST API URI указывает на ресурс, а HTTP-метод (GET, POST, PUT, DELETE и т.д.) — на операцию, которую необходимо произвести с этим ресурсом. Это разделение является фундаментом RESTful архитектуры.
Вот пример взаимодействия:
GET /api/v1/orders
— Получение списка всех заказовGET /api/v1/orders/789
— Получение информации о заказе с ID 789POST /api/v1/orders
— Создание нового заказаDELETE /api/v1/orders/789
— Удаление заказа
URI в данном случае определяет "что", а метод — "что делать". Это делает API понятным, предсказуемым и легким для интеграции.
Подробнее о REST API и его применении можно прочитать в статье REST API: что это такое, примеры запросов и методы.
RESTful URI и идентификатор ресурса
Хорошо спроектированный REST API использует RESTful URI, соответствующий следующим принципам:
- Использование существительных вместо глаголов (например,
/users
, а не/getUsers
) - Явное определение ресурса по ID (
/users/42
) - Иерархическая структура маршрутов, отражающая взаимосвязь между объектами
Идентификатор ресурса, как правило, передаётся в виде части пути. Например:
GET /companies/154/employees/97
— возвращает информацию о сотруднике с ID 97 компании с ID 154.
Такой подход обеспечивает интуитивно понятную маршрутизацию между связанными сущностями системы.
Пример API URI и путь к ресурсу
Рассмотрим пример API URI в системе управления заказами:
Метод | URI | Описание |
---|---|---|
GET | /api/v1/customers | Получить список клиентов |
GET | /api/v1/customers/301 | Получить клиента с ID 301 |
POST | /api/v1/customers | Создать нового клиента |
PUT | /api/v1/customers/301 | Обновить клиента |
DELETE | /api/v1/customers/301 | Удалить клиента |
Таким образом, URI выполняет роль прямого маршрута для выполнения требуемых операций с чётким разграничением действия только по HTTP-методу, а не по форме URI.
REST URI: синтаксис и правила названий
Несмотря на кажущуюся простоту, URI в REST API должен соответствовать определённым правилам, особенно когда речь идет о масштабируемых или публичных сервисах.
Вот общие рекомендации по формированию RESTful URI:
- Используйте множественное число для коллекций:
/products
,/orders
- Не включайте глаголы в путь URI: действия определяются HTTP-методом
- Разделяйте уровни вложенности логически: от общего к частному
- Используйте
-
для пробелов и не используйте символы подчёркивания - Версионирование делайте через путь:
/api/v2/items
Соблюдение этих принципов улучшает читаемость, снижает вероятность ошибок и упрощает работу внешним разработчикам.
FAQ: Часто задаваемые вопросы
Что означает URI в API?
URI в API — это путь к ресурсу. Он указывает REST-серверу, с каким объектом работать, будь то клиент, товар или заказ.
Чем отличается URI от URL?
URL — это частный случай URI, включающий схему и адрес доступа. URI может быть общим идентификатором ресурса, не всегда доступным по сети.
Для чего нужен путь в URI?
Путь в URI указывает на местоположение ресурса на сервере. Это ключевой элемент маршрутизации в REST API.
Какой формат у RESTful URI?
RESTful URI использует подход: база + коллекция/ресурс/идентификатор, например /api/v1/products/25
. Он избегает глаголов и следит за иерархией.
URI должен быть человекочитаемым?
Да, однозначный, короткий и читаемый URI облегчает поддержку, документацию и разработку интеграций.
Всё больше компаний в 2025 году строят API-интерфейсы, соответствующие REST парадигме — в таких проектах понимание структуры и назначения URI выходит на первый план. Это особенно важно при разработке микросервисных архитектур и внешних API для интеграций с деловыми партнёрами.