Разница между GraphQL и встраиванием
Я просто немного играю с graphql и пока не могу распознать разницу между graphql и REST с встраиванием и частичным ответом.
Частичный ответ используется TeamCity уже много лет и работает как услуга "Restful".
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.