GraphQL что это такое?

Объясните кратко, что это такое, является ли он самодостаточным или же используется с какими-то frameworks / libraries в связке?

GraphQL это язык запросов, как sql. Фишка GraphQL в том что форма запроса (какие поля включить в ответ, сколько данных выслать и все без join-ов) влияет на форму ответа.
Так же как и с mysql может быть несколько реализаций серверов, которые отдают данные по GraphQL запросу.
Запросы к этим серверам могут слать как другие приложения так и веб браузеры.

На практике чтобы использовать GraphQL нужен сервер, на сервере нужно описать какой формы данные и откуда их брать. Это самая сложная часть. Нужен клиент, который формирует запросы. Например для джаваскрипта это https://www.apollographql.com/docs/react/

Это все зависимости. Клиент может быть написан хоть на java хоть на js, хоть на Android.

GraphQL хорош для

  • описания api (вместо REST) ибо предоставляет большую гибкость в том какие и как спросить данные.
  • систем которые запрашивают разные клиенты (например веб приложение, андроид, ios приложение все для одного сервиса). Ибо форма и количество данных разные для разных клиентов, и задолбаешься описывать REST API для них. А источник правды для всех клиентов все равно один.
  • фронтенд серверов, которые забирают и показывают данные из системы. Как слой представления данных.
1 лайк

Он используется как СУБД ?

Как слой между СУБД и клиентом. Позади за GraphQL должна стоять какя-то субд.

1 лайк