GraphQL

9 уроків
Консультації
#5 – Добавление связей в схему

#5 – Добавление связей в схему

Для получения данных из других таблиц необходимо описать связи. В уроке мы ознакомимся как это можно сделать и укажем связи между нашими таблицами.

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

Одной из ключевых возможностей GraphQL является простота создания связей между различными сущностями. Это позволяет клиенту запрашивать вложенные данные за один запрос, избегая избыточных обращений к серверу.


Рассмотрим пример: у нас есть два типа — User и Post. Один пользователь может иметь несколько постов. В GraphQL эту связь можно выразить следующим образом:

type User {
	id: ID! 
	name: String! 
	posts: [Post!]! 
} 

type Post { 
	id: ID! 
	title: String! 
	content: String! 
	author: User! 
}


В этом примере у каждого пользователя есть поле posts, которое содержит массив постов. А каждый пост, в свою очередь, содержит поле author, ссылающееся на пользователя. Такая двухсторонняя связь позволяет гибко работать с данными.


Чтобы эти связи работали, необходимо правильно реализовать резолверы. Вот пример на JavaScript (с использованием Apollo Server):

const resolvers = { 
	User: { 
		posts: (parent, args, context) => { 
			return context.db.posts.filter(post => post.authorId === parent.id) 
		}, 
	}, 
	Post: { 
		author: (parent, args, context) => { 
			return context.db.users.find(user => user.id === parent.authorId) 
		}, 
	}, 
}


Такой подход позволяет клиенту сделать простой вложенный запрос:

query { 
	users { 
		name posts { 
			title 
		} 
	}
}


В ответ клиент получит всех пользователей вместе с их постами. GraphQL автоматически определит, какие поля и связи нужно вернуть, и сформирует ответ по указанной структуре.


Именно благодаря таким возможностям GraphQL становится мощным инструментом для построения гибких и эффективных API.

Матеріали для курсу

Щоб завантажувати матеріали до відеокурсів, необхідно оформити підписку на сайт

Завдання до уроку

Необхідно оформити передплату на проект, щоб отримати доступ до всіх домашніх завдань

Велике завдання за курсом

Вам необхідно оформити передплату на сайті, щоб мати доступ до всіх великих завдань. У завдання входить методика рішення, а також готовий проект з відповіддю до завдання.
PS: подібні завдання доступні при підписці від 1 місяця

Також варто подивитися

Фреймворк Next JS / Изучение NextJS для начинающих
8 уроків
Создание простой 3D игры в Unity
9 уроків
Telegram Bots: Создание ботов на Python Aiogram
10 уроків
Крипто разработка на Solidity / Создание монеты
7 уроків
Создание различных игр на Unity
7 уроків
Современная 2D игра на Unity 5
18 уроків
Коментарі
Додати коментар

Поки що коментарів немає