#API #интеграция
REST и GraphQL
Продолжая прошлый пост. Если подумать, в REST и GraphQL заложены схожие идеи:
Граф объектов
◽️Согласно HATEOAS клиент перемещается по графу от объекта к объекту за счет их слинкованности и выполняет необходимые действия над объектами. Таким образом достигается само документируемость API.
◽️GraphQL сразу предоставляет схему графа, по которой клиент одним запросом получает необходимые объекты, заранее зная их структуру и связи между ними.
Разница в работе с графом определяет, возникают ли у нас проблемы с избыточными вызовами: N+1, получение разнородных объектов в одном ответе. Это корневая причина появления GraphQL.
Представления объектов
В обоих случаях клиент может получать объекты в нужном представлении. В ресте фокус на формат данных, в gql - на атрибутный состав.
Стандартизация допустимых действий
◽️HTTP-глаголы в для реста
◽️Query и mutations в GraphQL
При этом на практике GraphQL используют поверх HTTP, где он оказывается на нулевом уровне зрелости реста (или в RPC Swamp, как обозвал его Ричардсон), наследуя все проблемы RPC over HTTP.
В итоге идеи близки, реализации противоположны - забавный дуализм.
Post #292
3.58K
- 👍 4
- ❤ 1
- 🥰 1
- 🤔 1