Последний вопрос в тесте показал, что с GraphQL знакомы пока немногие.
Либо часть из вас просто не заметила, что вопрос был именно про GraphQL, а не про REST API 🙂
👉 Вопрос был такой:
Какой endpoint выбрать для получения карточки питомца в GraphQL?
Большинство голосов ушло за вариант, который был бы верным для REST API:
GET /api/v1/pets/{petId}
Но в GraphQL логика другая.
🩷 GraphQL — это другой подход к проектированию API по сравнению с REST.
Что важно понимать:
✔️ GraphQL обычно работает поверх HTTP
✔️ чаще всего используется один endpoint: POST /graphql
✔️ для запросов только на получение данных также может использоваться GET /graphql
✔️ клиент сам указывает, какие поля хочет получить в ответе
✔️ это помогает не получать лишние данные и в ряде случаев экономить трафик
✔️ ошибки в GraphQL часто возвращаются внутри JSON-ответа в поле errors, при этом HTTP-статус остаётся 200
🩵🩷 Подробное сравнение GraphQL с REST API я показала на примере метода
«Создать запись на приём к ветеринару» — смотрите на картинках к посту.
И отдельно правильный ответ на вопрос из теста про «Получение карточки питомца»:
👉 POST /graphql — основной вариант эндпоинта
👉 GET /graphql — тоже допустим, если это только запрос на получение данных
В этом и был подвох:
в REST API мы обычно проектируем отдельные endpoint-ы под разные сценарии,
а в GraphQL чаще всего работаем через один общий endpoint.
#RestApiGA #VetCareGA
📱 Tg | 💙 ВК | 💬 Max


