Разница между GraphQL и встраиванием

Я просто немного играю с graphql и пока не могу распознать разницу между graphql и REST с встраиванием и частичным ответом.

Частичный ответ используется TeamCity уже много лет и работает как услуга "Restful".

https://github.com/dotarj/PartialResponse

http://v2.wp-api.org/reference/links.html

1 ответ

Решение

REST- это архитектурный стиль, а не формат или язык запросов (как у GraphQL). Можно создать API, который поддерживает частичные ресурсы или иерархию ресурсов (другие примеры могут включать исправление JSON или график JSON), но такие подходы не являются концептуальной частью REST. С другой стороны, они являются концептуальной частью GraphQL. Вы выбрали примеры, которые имеют некоторое сходство с GraphQL, но это не связано с тем, что они являются сервисами RESTful.

С другой стороны, REST основан на нескольких подходах, которые не соответствуют GraphQL (или наоборот). Неполный список включает в себя:

  • HTTP является строительным блоком REST. В спецификации GraphQL говорится о "клиенте" и "сервере", но я не читал, что для этого требуется HTTP.
  • REST основан на глаголах HTTP. Поскольку кажется, что GraphQL не требует HTTP, он не может требовать HTTP-глаголов. В любом случае это не сработает, поскольку GraphQL позволяет смешивать операции в одном запросе: вы можете выполнить мутацию плюс запрос в одном запросе, который не будет REST-совместимым, поскольку запрос должен быть GET, а мутация должна быть POST или PUT.
  • Семантика кода состояния HTTP отсутствует в GraphQL.
Другие вопросы по тегам