На предыдущей лекции мы разобрались, что такое 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 моделей.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ