Правило Uniform Interface — одно из шести архитектурных ограничений REST. Оно предписывает системе использовать единый, стандартизированный подход к взаимодействию между клиентом и сервером. Это упрощает и отделяет архитектуру, улучшает видимость и облегчает независимое развитие клиента и сервера.
Компоненты Uniform Interface:
- Идентификация ресурсов (Identification of resources): Ресурсы должны быть уникально идентифицируемы (обычно через URI). Это основа для стандартизованного взаимодействия. Пример:
/users/123, /products/ABC.
- Манипулирование ресурсами через их представления (Manipulation of resources through representations): Клиент получает представление ресурса (например, в JSON или XML формате), которое содержит достаточно информации для изменения или удаления ресурса на сервере. Состояние ресурса на сервере можно изменить, отправив измененное представление.
- Самоописуемые сообщения (Self-descriptive messages): Каждое сообщение (запрос или ответ) должно содержать достаточно информации, чтобы быть полностью понятым без контекста состояния сервера или других запросов. Это включает метаданные: тип контента, информацию о кэшировании, ссылки на другие ресурсы и т.д.
http
- Hypermedia as the Engine of Application State (HATEOAS): Позволяет клиенту динамически переходить между ресурсами, основываясь на гипермедийных ссылках, предоставленных сервером в ответе. Клиент не должен заранее знать все URI, кроме точки входа. Сервер направляет клиента по доступным действиям и ресурсам.
json
Вместо жестко закодированных путей, клиент узнает о возможности отмены заказа по наличию и содержанию ссылки с rel: "cancel".
Единообразный интерфейс критически важен для масштабируемости и эволюционируемости RESTful систем, так как он уменьшает связность между компонентами.