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

Документ и тест Django API с Swagger (часть 1)

Строительные API с Django Read Framework – одна из лучших технологий для работы, у вас так много … Теги с Джанго, Питоном, Учебником, WebDev.

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

ПОКАЗАТЕЛЬ

  • Введение
  • Установление окружающей среды
  • Настройка Django.
  • Создание моделей и сериализаторов
  • Здание API
  • Строительная документация
  • Тестирование наших API

Введение

SWARGER – одна из широко используемых API-документации и инструмента для тестирования. В этой серии мы собираемся использовать «DRF-YASG2» как обертку для нашего проекта Django/DRF.

Ниже приведен снимок документации API.

Установление окружающей среды

Начните с создания свежего проекта Django. Для встряхивания обучения мы собираемся создавать API для приложения TODO, в котором пользователи могут создавать, читать, обновлять и удалять (CRUD) TODOS.

Создать виртуальную среду Python

$ python3 -m venv env

Активируйте виртуальную среду

$ source ./env/bin/activate

Теперь установите модули

$ pip install django djangorestframework drf-yasg2

Создайте проект Django “MyApp” в настоящем рабочем каталоге

$ django-admin startproject myapp .

Создать приложение Django “Todos”

$ django-admin startapp todos

Зарегистрируйте «TODOS» и «DRF_YASG2» в настройках Django .py (MyApp/settings.py)

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'rest_framework',
    'drf_yasg2',
    'todos',
]

Кроме того, добавьте следующий блок кода в одном файле (settings.py)

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly',
    )
}

SWAGGER_SETTINGS = {
   'SECURITY_DEFINITIONS': {
      'Bearer': {
            'type': 'apiKey',
            'name': 'Authorization',
            'in': 'header'
      }
   }
}

Отредактируйте файл URLS.PY проекта (MyApp/Urls.cy)

from django.contrib import admin
from django.urls import path, re_path

from drf_yasg2.views import get_schema_view
from drf_yasg2 import openapi

schema_view = get_schema_view(
    openapi.Info(
        title="MyApp Docs.",
        default_version='v1',
    ),
    public=True,
)


urlpatterns = [
    path('admin/', admin.site.urls),

    re_path(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
]

Беги джанго миграции

$ python manage.py migrate

Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK

Запустите сервер развития Django

$ python manage.py runserver

Посетить http://127.0.0.1:8000/swagger/ Вы должны увидеть пустой документацию API/тестирование веб-страницы

Поздравляю! 🎉 🎉 🎉 Вы успешно сгенерировали страницу документации/тестирования API

Что дальше?

В Следующее руководство , Мы создадим модели, сериализаторы и представления для нашего приложения Todo.

Спасибо …| С ❤️. Команда Tech Tech

Оригинал: “https://dev.to/rajeshj3/document-and-test-django-apis-with-swagger-part-1-2le7”