Вывод
В этой главе мы рассмотрели основные преимущества использования REST-API. Мы увидели, что REST-API предлагает простоту и гибкость, независимость от платформы, масштабируемость, безопасность легкость поддержки обслуживания. Все эти делают популярным широко используемым подходом к созданию веб-служб. следующей рассмотрим, как создавать с помощью популярных фреймворков библиотек.
Глава 2. Проектирование и реализация REST-API
2.1. Определение ресурсов и методов
Когда мы начинаем строить REST-API, нам необходимо определить, какие ресурсы будут доступны для взаимодействия и методы использоваться работы с этими ресурсами. В этом разделе рассмотрим основные принципы определения ресурсов методов, а также некоторые лучшие практики, которые помогут вам создать хорошо структурированное масштабируемое API.
Ресурсы: основа REST-API
В REST-API ресурсы представляют собой сущности, с которыми клиент может взаимодействовать. Ресурс быть чем угодно: пользователем, заказом, продуктом, статьей и т.д. Каждый ресурс имеет уникальный идентификатор, который используется для доступа к нему. Идентификатор в виде URL, UUID или любого другого уникального идентификатора.
При определении ресурсов необходимо учитывать следующие факторы:
Назначение ресурса: для чего нужен ресурс? Какую функциональность он будет выполнять?
Связи с другими ресурсами: как ресурс связан ресурсами? Есть ли между ними отношения?
Атрибуты ресурса: какие атрибуты имеет ресурс? Какие данные будут храниться в ресурсе?
Методы: действия над ресурсами
Методы в REST-API представляют собой действия, которые можно выполнять над ресурсами. Каждый метод имеет свое назначение и используется для выполнения определенного действия ресурсом. Наиболее распространенные методы REST-API:
GET: получение ресурса или коллекции ресурсов
POST: создание нового ресурса
PUT: обновление существующего ресурса
DELETE: удаление ресурса
При определении методов необходимо учитывать следующие факторы:
Назначение метода: для чего нужен метод? Какое действие он будет выполнять?
Влияние на ресурс: как метод будет влиять ресурс? Будет ли он изменять ресурс или только читать его?
Параметры метода: какие параметры будут передаваться методу? Как они использоваться?
Лучшие практики
При определении ресурсов и методов необходимо следовать некоторым лучшим практикам, чтобы создать хорошо структурированное масштабируемое API: