Веб -API – это двигатели, которые поддерживают большинство наших приложений в наши дни. В течение многих лет отдых был главным архитектором API, но в этой статье мы рассмотрим Django в библиотеке GraphQL!
С API REST вы регулярно создавали URL -адреса для каждого объекта доступных данных. Думая о примере API REST для книг – у нас будут URL -адреса самих книг, авторов, призов, персонажей и героев … это уже много! Это может включать много запросов.
С GraphQL у вас есть одна конечная точка, спросите, чего вы хотите, и получите именно это. Это главная технология в соответствии с State of JS 2018, а каждую неделю сообщество создает что -то интересное, чтобы помочь пользователям внедрить новые технологии. Yzyilomo Поступил с идеей библиотеки Python, которая позволяет превратить структуру REST Django в GraphQL, такой как API. Давайте рассмотрим это больше.
Django-Restql-это библиотека, которая превращает ваш API, сделанный в Django Rest Framework (DRF) в API, как API. С django-restql вы сможете:
- Отправьте запрос в свой API и получите то, что вам нужно, ничего больше и ничего меньшего.
- Получите ожидаемые результаты, так как вы контролируете то, что получаете от сервера.
- Управляйте данными, которые вы получаете, а не сервер.
- Сохраните загрузку неиспользованных данных с сервера.
Библиотека работает, динамически выбирая подмножество полей на ресурс DRF, как указано по запросу запрос
параметр.
yezyilomo/django-restql
Превратите свой API, сделанный в Django Rest Framework (DRF) в API, как API.
Django Restql это библиотека Python, которая позволяет перевернуть ваш API, сделанный с Django Rest Framework (DRF) в график, как API. С Django Restql Вы сможете
Отправьте запрос в свой API и получите именно то, что вам нужно, не больше и не меньше.
Управляйте данными, которые вы получаете, а не сервер.
Получите предсказуемые результаты, так как вы контролируете то, что получаете от сервера.
Получить вложенные ресурсы за один запрос.
Избегайте чрезмерного вытягивания и недостаточного извлечения данных.
Напишите (создать и обновлять) вложенные данные любого уровня с гибкостью.
Разве это не круто?
Хотите увидеть, как эта библиотека делает все возможное?
Проверьте полную документацию на https://django-restql.yezyilomo.com
Требования
- Python.5
- Django.11
- Django Rest Framework.5
Установка
pip install django-restql
Начиная
Используя Django Restql Чтобы запросить данные очень просто, вам просто нужно унаследовать Dynamicfieldsmixin
учебный класс …
Следуйте Yzyilomo Чтобы связаться с ним!
Установка
pip install django-restql
Начиная
Используя django-restql очень просто, вам просто нужно использовать DynamicFieldsmixin при определении представления.
from rest_framework import viewsets from django.contrib.auth.models import User from .serializers import UserSerializer from django_restql import DynamicFieldsMixin class UserViewSet(DynamicFieldsMixin, viewsets.ModelViewSet): queryset = User.objects.all().order_by('-date_joined') serializer_class = UserSerializer
Регулярный запрос возвращает все поля, указанные в DRF Serializer, на самом деле django-restql вообще не обрабатывает этот запрос:
Получить/пользователи
[ { "id": 1, "username": "yezyilomo", "email": "yezileliilomo@hotmail.com", "groups": [1,2] }, ... ]
django-restql обрабатывать все запросы получить с запрос
Параметр, этот параметр является тем, что используется для передачи всех полей, которые должны быть включены в ответ. Например, выбрать id
и Имя пользователя
Поля из Пользователь
модель, отправьте запрос с запрос
параметр, как показано ниже.
Get/users/? Query = [[“id”, “username”]]]
[ { "id": 1, "username": "yezyilomo" }, ... ]
Если запрос содержит вложенное поле, django-restql вернет свой идентификатор или массив идентификаторов по делу о вложенном итерабильном поле (One2many или Mony2my). Например по запросу ниже Место
это плоское вложенное поле (MONTIONONE) и группы
это итерабируемое вложенное поле (One2 Many или Mony2 Many).
Get/users/? Query = [[«id», «Имя пользователя», «Местоположение», «Группы»]]]
[ { "id": 1, "username": "yezyilomo", "location": 6, "groups": [1,2] }, ... ]
django-restql Поддержка запроса как плоских, так и вложенных ресурсов, чтобы вы могли расширить или запрашивать вложенные поля на любом уровне, если ваше поле определяется как вложенное поле на сериализаторе. Например, вы можете запросить полю страны и региона с местоположения.
Get/users/? Query = [[“id”, “username”, {“location”: [“страна”, “регион”]}]]]]]
[ { "id": 1, "username": "yezyilomo", "location": { "contry": "Tanzania", "region": "Dar es salaam" } }, ... ]
django-restql Получил вас на расширение или запрос итерабируемых вложенных полей. Например, если вы хотите расширить группы
поле в id
и имя
, вот как бы вы это сделали.
Get/users/? Query = [[“id”, “username” {“groups”: [[“id”, “name”]]}]]]]]
[ { "id": 1, "username": "yezyilomo", "groups": [ { "id": 2, "name": "Auth_User" } { "id": 3, "name": "Admin_User" } ] }, ... ]
Оригинал: “https://dev.to/robmatyszewski/turn-django-rest-api-into-a-graphql-like-api-115h”