Другие языки программирования и технологии

GraphQL является фреймворком для работы с БД или он сам БД?

Просто не нахожу никакой информации о том каким именно образом осуществить коннект с бд.
Кирилл Козлов
Кирилл Козлов
39 135
Нет прямого отношения к базам данных GraphQL не имеет. Данные запрашиваются не в структуре БД, а в структуре, реализуемой слоем моделей. Если модуль GraphQL лезет непосредственно в базу - это ошибка дизайна системы.

И нет, это не фреймворк, а только модуль фреймворка, производящий обработку запроса. Вот, например, GraphQL для Yii2: https:// github.com/tsingsun/yii2-graphql и для Laravel: https:// github.com/folkloreinc/laravel-graphql

GraphQL - это способ взаимодействия клиента с сервером. Используется в точности для тех же целей, что и REST.

Разница между REST и GraphQL в том, что в REST API сущность каждого типа имеет отдельную точку входа (один адрес API для городов, другой адрес API для марок автомобилей) и если требуется получить несколько разнотипных сущностей, требуется несколько запросов, а в GraphQL есть единая точка входа и ты в запросе перечисляешь, какие поля каких сущностей ты хочешь получить и по каким критериям их нужно отбирать.

То, что в REST делается несколькими простым запросами, в GraphQL делается одним сложным. Но чем сложнее запрос, тем дольше он обрабатывается сервером. И тут REST и GraphQL являются двумя крайностями: предельно простой и быстро работающий REST, в котором значительная часть обработки данных перекладывается на клиента и GraphQL, делающий все на сервере, но ответа от которого - в клинических случаях - придётся ждать десятки минут.
Роман Кудряшов
Роман Кудряшов
83 440
Лучший ответ
Как я понял, это язык запросов. Например, SQL тоже не является БД или фреймворком для БД. Продукт, поддерживающий GraphQL можно считать фреймворком. Или СУБД может его поддерживать.
Кудин Антон
Кудин Антон
36 282