@Alex_87

Как работает backend на примере стеков graphQL и Apollo, nodejs, express?

Добрый вечер! В сети очень мало информации на примере, помогающие установить связь между стеками GraphQL, Apollo, nodejs, express. У меня проблема в понимании того, как строится backend приложение, его шаги. Ниже я приведу несколько вопросов, показывающие в чём проблема.

1) Предположим, что есть Vue приложение. Данные подготовлены в формате JSON. Что делать дальше? Как это храниться в базе данных?
2) GraphQL это язык запросов, но на нём можно создавать и API.... Как это понять? Я считал, что он работает с готовым API, а он его ещё и создаёт?
3) Использование GraphQL на фронтенде и на бэкенде, есть Apollo на клиенте и на сервере... Как это всё понять? Где, что и когда используется, прошу краткое описание!
4) API можно сделать GraphQL, Apollo, nodejs, express... И при чём всё это может быть использовано самим GraphQL. Какая разница, где же всё таки делать?
5) Цитата из статьи: "Сервер GraphQL формирует основной компонент на стороне сервера и позволяет анализировать запросы, поступающие от клиентских приложений GraphQL. Apollo Server – наиболее часто используемая реализация спецификации GraphQL." ВОПРОС - Зачем нужен Apollo Server если есть GraphQL сервер?

P.S. Прошу объяснить, как строится приложение? К примеру... Отправная точка: Сделали код на фронте. далее, исходя из структуры проекта, создаём JSON Файл... далее, по шагам 1) Нужно создать сервер, для того, чтобы ......... 2) У нас есть данные, нужно связать клиента и сервера при помощи API, которое можно создать....... 3) .....
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 2
@holllop
Давайте по порядку разберем ваши вопросы:
1) Если у вас есть данные в формате JSON и вы хотите их хранить в базе данных, то самый простой способ - это использовать базу данных, которая поддерживает JSON, например PostgreSQL с расширением JSONB. Вы можете сохранить JSON-данные в столбце с типом данных JSONB и индексировать поля внутри JSON для быстрого доступа к данным. Также можно использовать ORM (Object-Relational Mapping), такой как Sequelize или TypeORM, для работы с JSON в базе данных.
2) GraphQL - это язык запросов и спецификация, которая позволяет клиентским приложениям запрашивать только необходимые данные с сервера. Однако, GraphQL также может использоваться в качестве API-сервера, который обрабатывает запросы от клиентов, возвращает запрошенные данные или выполняет мутации для изменения данных. Таким образом, GraphQL может использоваться как язык запросов, так и как средство создания API.(я сам часто смотрю в сторону Graph))
3) Apollo - это набор библиотек для работы с GraphQL на клиентской и серверной стороне. Apollo Client - это библиотека для работы с GraphQL на стороне клиента, которая предоставляет инструменты для выполнения запросов к серверу GraphQL и управления данными в приложении. Apollo Server - это библиотека для работы с GraphQL на стороне сервера, которая позволяет создавать GraphQL API и обрабатывает запросы от клиентского приложения. Apollo Server и Apollo Client - это часто используемые инструменты для работы с GraphQL.
4) API-сервер на основе GraphQL может быть реализован с использованием различных инструментов, таких как GraphQL.js, Apollo Server, Express.js или других. GraphQL сам по себе является спецификацией языка запросов, а Apollo Server и другие инструменты предоставляют реализацию этой спецификации для создания API-сервера. Node.js и Express.js могут использоваться как основа для создания и обработки запросов API-сервера на базе GraphQL.
5) Apollo Server - это реализация спецификации GraphQL, которая предоставляет инструменты для разработки сервера GraphQL. Он обрабатывает запросы от клиентов, анализирует их и выполняет запросы к базе данных или другим источникам данных. Таким образом, Apollo Server является часто используемым инструментом для создания сервера GraphQL, который предоставляет мощные возможности для работы с GraphQL-схемой и запросами.
Ответ написан
Комментировать
@Alex_87 Автор вопроса
Спасибо за ответ тем, кто написал! Они довольно исчерпывающие. Я попробовал зайти с другой стороны и пояснить в картинке, в чём застрял, в понимании чего... Прошу её посмотреть и если есть время рассказать...

65031221aa420500560452.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы