На попередній лекції ми розібралися, що таке GraphQL, його переваги та основні концепції. Сьогодні ми на практиці впровадимо підтримку GraphQL в наш проєкт з використанням бібліотеки Graphene-Django. Приготуйтеся до пригоди, бо далі буде тільки цікавіше!
Встановлення Graphene-Django
Для роботи з GraphQL у Django ми будемо використовувати бібліотеку Graphene-Django. Це високорівнева бібліотека, яка спрощує створення GraphQL API у проєктах Django. Вона дозволяє інтегрувати Django моделі, надаючи зручні інструменти для роботи з типізацією та запитами.
Крок 1: встановлення залежностей
Спочатку встановимо необхідні бібліотеки для роботи з GraphQL у Django:
pip install graphene-django
До цього моменту передбачається, що ви вже створили проєкт Django та налаштували віртуальне середовище. Якщо ні, поверніться до попередніх лекцій з налаштування Django.
Також рекомендується встановити GraphiQL, вбудовану інтерактивну консоль для тестування GraphQL-запитів. Вона постачається разом із Graphene-Django, і пізніше ми її налаштуємо.
Перевірка встановлення: щоб переконатися, що graphene-django встановлений, виконайте наступну команду в Python-терміналі:
import graphene_django
print(graphene_django.__version__)
Якщо виводиться версія бібліотеки, значить, усе готово!
Налаштування проєкту Django для роботи з GraphQL
Тепер, коли ми встановили Graphene-Django, час інтегрувати його у наш Django-проєкт. Для цього виконаємо кілька простих кроків.
Крок 1: додавання graphene_django у INSTALLED_APPS
Відкриваємо файл налаштувань settings.py вашого проєкту і додаємо graphene_django у список додатків:
INSTALLED_APPS = [
...
"graphene_django",
]
Крок 2: налаштування GraphQL у Django
У settings.py також додамо конфігурацію для GraphQL. Ми визначимо, що використовуємо Graphene-Django для роботи з GraphQL API:
GRAPHENE = {
"SCHEMA": "your_project.schema.schema" # Вказуємо шлях до схеми GraphQL (створимо її пізніше)
}
Не забудьте замінити your_project на ім'я вашого проєкту.
Крок 3: створення URL для GraphQL
Тепер нам потрібно сказати Django, де буде доступний наш GraphQL API. Для цього змінимо файл urls.py:
from django.contrib import admin
from django.urls import path
from graphene_django.views import GraphQLView
urlpatterns = [
path("admin/", admin.site.urls),
path("graphql/", GraphQLView.as_view(graphiql=True)), # Увімкнемо GraphiQL
]
Зверніть увагу на параметр graphiql=True. Це увімкне інтерфейс GraphiQL, який дозволить нам тестувати запити прямо у браузері.
Перший запуск GraphQL
Налаштування завершено, саме час перевірити, чи все працює! Запускаємо сервер розробника:
python manage.py runserver
Перейдіть у ваш браузер за адресою: http://127.0.0.1:8000/graphql/. Якщо все налаштовано правильно, ви побачите інтерфейс GraphiQL. Він виглядає як затишне місце для програміста: поле для введення запитів, розділ для результатів і довідкова документація.
Звісно, зараз нічого не працює (так-так, це нормально!), адже ми поки що не визначили жодних запитів чи даних. Це буде наступним кроком.
Інтеграція GraphQL у проєкт
Налаштувати GraphQL ми налаштували, але він все ще "порожній". Давайте додамо першу схему, щоб почати працювати з даними.
Крок 1: створення файлу schema.py
У корені вашого проєкту (поруч із urls.py) створіть файл schema.py:
touch schema.py
Відкрийте його і додайте наступний код:
import graphene
class Query(graphene.ObjectType):
hello = graphene.String(default_value="Привіт, GraphQL!")
schema = graphene.Schema(query=Query)
Пояснимо, що відбувається:
- Ми створили тип
Query, який містить одне полеhello. helloповертає рядок за замовчуванням, який ми вказали як"Привіт, GraphQL!".- Ми визначили загальну схему GraphQL і сказали, що
Queryбуде її основним входом.
Крок 2: підключення схеми до проєкту
Тепер потрібно переконатися, що Django знає про нашу схему. Повернемось у settings.py і перевірте, що шлях до схеми вказаний коректно:
GRAPHENE = {
"SCHEMA": "your_project.schema.schema",
}
Якщо все налаштовано правильно, можемо рухатись далі.
Крок 3: тестування запиту
Перейдіть знову в GraphiQL (http://127.0.0.1:8000/graphql/) і виконайте наступний запит:
query {
hello
}
Якщо все налаштовано вірно, ви отримаєте відповідь:
{
"data": {
"hello": "Привіт, GraphQL!"
}
}
Ура! Це перший робочий запит GraphQL.
Що далі?
Тепер, коли ми налаштували Graphene-Django та створили простий GraphQL API, у наступних лекціях ми перейдемо до більш складних задач. Ми визначимо користувацькі типи, підключимо Django моделі та навчимося створювати запити і мутації.
GraphQL — це потужний інструмент, який може значно спростити роботу з даними у складних застосунках. Вже зараз ти бачиш, наскільки гнучким і зручним він може бути.
Якщо щось пішло не так, не бійся повертатися до попередніх кроків. У наступній лекції ми будемо заглиблюватися у створення повноцінного API з використанням GraphQL і Django моделей.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ