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

Превратить Django Rest API в график, как API

Веб -API – это двигатели, которые поддерживают большинство наших приложений в наши дни. На протяжении многих лет отдых был Принчи … Tagged с Python, GraphQL, WebDev, ShowDev.

Веб -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”