Рубрики
Без рубрики

Начало работы с Python и GraphQL – часть 1

Примечание. Этот пост написан моим сотрудником Keyur, но мы блогаем в том же месте. Так как это вступление … Помечено с GraphQL, Python, Django, WebDev.

Примечание. Этот пост написан моим сотрудником Keyur, но мы блогаем в том же месте.

Поскольку это введение Facebook, Graphql находится в конкуренции в качестве альтернативы для отдыха API. Недавно Github Также объявил поддержку GraphQL одному из их API. Поскольку GraphQL не просто эволюционная замена для отдыха, этот блог поможет прикрыть основы GraphQL и разработать API GraphQL с Python Django.

Введение в график

Что такое graphql?

GraphQL – это сильно напечатанный язык запроса, который описывает, как запросить данные. Graphql объявляет все как график. Вы запрашиваете то, что хотите, а затем вы получите то, что вы ожидали. Ни больше ни меньше.

Рассмотрим базу данных с двумя столом проекты и Пользователь Отказ Проекты содержат поля Название и название проекта в то время как Пользователь Содержит поля имя пользователя и Email Отказ

Теперь, если вы хотите знать название проекта и электронной почты, связанной с этим проектом? Какой был бы ваш первый инстинкт? Чтобы присоединиться к двум таблицу и привлечь название проекта и электронной почты. Конечно, он предоставит ожидаемый результат, но GraphQL сможет извлечь ту же информацию без присоединения или получения дополнительных данных на стороне сервера.

Будучи сильно наведенным языком запроса, он позволяет определить, какие данные необходимы, тем самым избегая проблем, связанных с использованием данных.

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

Звучит захватывающим, не так ли? Если вы в настоящее время используете api api и любопытно узнать, будет ли миграция на Graphql, решит вашу деловую проблему, проверить этот углубленный анализ Отдых против графика архитектура.

Начиная

Прежде чем продолжить, убедитесь, что у вас установлен Python 3.6.

Что мы собираемся построить?

В этом блоге мы создадим выборки проекта, используя Django и Graphene. Графен это рамка графа для Python. Проект будет иметь следующие функции:

  • События Создание, которые имеют имя и URL поля
  • Поиск и фильтр События данные
Создание вашей местной среды

Работая с Python, мы рекомендуем использовать виртуальную среду для хранения всех зависимостей проекта, изолированных от других проектов.

conda create -n graphql python=3.6 anaconda # Create the environment
source activate graphql # Activate the environment
Установка зависимостей
pip install django==2.0.2 graphene==2.0.1 graphene-django==2.0.0 django-filter==1.1.0

Настройка графена Django

На {django_project_name}/settings.py Добавьте следующее:

INSTALLED_APPS = (
    # At the end of all the default packages
    'graphene_django',
)

Добавить в нижней части файла:

GRAPHENE = {
    'SCHEMA': '{django_project_name}.schema.schema',
}

Создание приложения события

На {django_project} root, создайте События приложение

python manage.py startapp events

Далее нам нужно определить слой между базой данных и Django.

# Defining Event model
class Event(models.Model):
    name = models.TextField(blank=True)
    url = models.URLField()

Наконец, нам нужно настроить Django, чтобы использовать новый События приложение на {django_project_name/settings.py} файл:

INSTALLED_APPS = (
    # After the graphene_django app
    'events',
)
Создание таблицы базы данных
python manage.py makemigrations
python manage.py migrate

Откройте Django Shell Python Manage.py Shell и создать некоторые данные.

from events.models import Event
Event.objects.create(name='API Analytics', url='https://www.moesif.com/')
Event.objects.create(name='Trove Marketplace', url='https://www.trove.com/')

Представляя бессонницу/графикл

Мы могли бы использовать Бессонница Остальный клиент или Graphiql Графический интерактивный в браузере IDE IDE для запуска запросов.

Создание вашей первой схемы

При запуске с GraphQL – один из первых вопросов, который у нас имели, это как мы создаем наш сервер GraphQL? Как график был выпущен как Спецификация Мы можем построить сервер с любым языком программирования.

Схема – это коллекция объектов, которые могут содержать несколько полей. Каждое поле рассчитывается через резольвенторы, которые возвращает значение. Резольверы Функции для поля будут получать доступ к базе данных и возвращает объект.

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

Создайте файл {django_project_name}/schema.py для схемы.

import graphene
import events.schema

# Query for getting the data from the server.
class Query(events.schema.Query, graphene.ObjectType):
    pass

# Create schema
schema = graphene.Schema(query=Query)

Создание вашего первого запроса

Язык запроса Graphql – это все о выборе полей на объектах.

Начнем с объекта «root» и выберите События поле на это. От объекта, возвращаемого событиями, мы бы выбрали ID , Имя и URL поля.

Создание вашей первой мутации

Процесс отправки данных на сервер называется мутацией.

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

Попробуйте запросить данные снова, вы увидите созданное новое событие.

Запрос и мутация определяет точку входа для API GraphQL. Каждый сервис GraphQL имеет тип запроса и может или не может иметь тип мутации.

Поиск и фильтрация

Как только у нас есть данные, мы могли бы искать и фильтровать на основе требований. Мы могли бы искать первые/последние записи «n», пропустить записи или поиск любого срока.

Последние N записи с только идентификатором события и полей имени:

Поиск конкретных срок в полях или поля URL:

Мы могли бы также искать и фильтровать вместе:

Хорошо, просто позвольте мне играть с этим! Чтобы увидеть действие GraphQL в действии, вы можете Git Clone и запустить пример приложения из здесь

В следующем уроке – мы обсудим больше о аутентификации и пагинации. Между тем, если у вас какой-либо вопрос, обратитесь к Moesif Team Отказ

Оригинал: “https://dev.to/xngwng/getting-started-with-python-and-graphql—part-1-4gnj”