feat(api): полное API для всех парсеров с документацией
This commit is contained in:
@@ -1,22 +1,49 @@
|
||||
"""
|
||||
API v1 URL configuration.
|
||||
|
||||
All API endpoints are versioned under /api/v1/
|
||||
Все API эндпоинты версионированы под /api/v1/
|
||||
|
||||
Структура:
|
||||
- /api/v1/users/ - Аутентификация и пользователи
|
||||
- /api/v1/jobs/ - Фоновые задачи
|
||||
- /api/v1/minpromtorg/ - Минпромторг (сертификаты, производители)
|
||||
- /api/v1/proverki/ - Единый реестр проверок
|
||||
- /api/v1/zakupki/ - Государственные закупки
|
||||
- /api/v1/fns/ - ФНС (бухгалтерская отчетность)
|
||||
- /api/v1/system/ - Системные (логи, прокси) - только для админов
|
||||
"""
|
||||
|
||||
from apps.core.views import BackgroundJobListView, BackgroundJobStatusView
|
||||
from apps.parsers.urls import fns_urlpatterns
|
||||
from apps.parsers.urls import (
|
||||
fns_urlpatterns,
|
||||
minpromtorg_urlpatterns,
|
||||
proverki_urlpatterns,
|
||||
system_urlpatterns,
|
||||
zakupki_urlpatterns,
|
||||
)
|
||||
from django.urls import include, path
|
||||
|
||||
app_name = "api_v1"
|
||||
|
||||
# Фоновые задачи
|
||||
jobs_urlpatterns = [
|
||||
path("", BackgroundJobListView.as_view(), name="job-list"),
|
||||
path("<str:task_id>/", BackgroundJobStatusView.as_view(), name="job-status"),
|
||||
]
|
||||
|
||||
urlpatterns = [
|
||||
# Аутентификация и пользователи
|
||||
path("users/", include("apps.user.urls")),
|
||||
path("fns/", include((fns_urlpatterns, "fns"))),
|
||||
# Фоновые задачи
|
||||
path("jobs/", include((jobs_urlpatterns, "jobs"))),
|
||||
# Парсеры - Минпромторг
|
||||
path("minpromtorg/", include((minpromtorg_urlpatterns, "minpromtorg"))),
|
||||
# Парсеры - Единый реестр проверок
|
||||
path("proverki/", include((proverki_urlpatterns, "proverki"))),
|
||||
# Парсеры - Государственные закупки
|
||||
path("zakupki/", include((zakupki_urlpatterns, "zakupki"))),
|
||||
# Парсеры - ФНС бухгалтерская отчетность
|
||||
path("fns/", include((fns_urlpatterns, "fns"))),
|
||||
# Системные (только админы)
|
||||
path("system/", include((system_urlpatterns, "system"))),
|
||||
]
|
||||
|
||||
@@ -344,6 +344,24 @@ if isinstance(CORS_ALLOWED_ORIGINS, str):
|
||||
CORS_ALLOWED_ORIGINS = CORS_ALLOWED_ORIGINS.split(",")
|
||||
CORS_ALLOW_CREDENTIALS = True
|
||||
|
||||
# =============================================================================
|
||||
# SWAGGER SETTINGS (drf-yasg)
|
||||
# =============================================================================
|
||||
SWAGGER_SETTINGS = {
|
||||
"SECURITY_DEFINITIONS": {
|
||||
"Bearer": {
|
||||
"type": "apiKey",
|
||||
"name": "Authorization",
|
||||
"in": "header",
|
||||
"description": "JWT авторизация. Формат: Bearer <access_token>",
|
||||
}
|
||||
},
|
||||
"USE_SESSION_AUTH": True,
|
||||
"PERSIST_AUTH": True,
|
||||
"REFETCH_SCHEMA_WITH_AUTH": True,
|
||||
"REFETCH_SCHEMA_ON_LOGOUT": True,
|
||||
}
|
||||
|
||||
# Logging configuration
|
||||
LOGGING = {
|
||||
"version": 1,
|
||||
|
||||
@@ -17,8 +17,21 @@ schema_view = get_schema_view(
|
||||
openapi.Info(
|
||||
title="Mostovik API",
|
||||
default_version="v1",
|
||||
description="API documentation for Mostovik project",
|
||||
terms_of_service="https://www.google.com/policies/terms/",
|
||||
description="""
|
||||
## API документация для проекта Mostovik
|
||||
|
||||
### Авторизация
|
||||
Для доступа к защищённым эндпоинтам используйте JWT токен:
|
||||
1. Получите токен через `POST /api/v1/users/login/`
|
||||
2. Добавьте заголовок: `Authorization: Bearer <access_token>`
|
||||
|
||||
### Обновление токена
|
||||
Используйте `POST /api/v1/users/token/refresh/` с refresh токеном.
|
||||
|
||||
### Парсеры
|
||||
API предоставляет только чтение данных (GET, GET list).
|
||||
Добавление и удаление записей происходит через парсеры и админку.
|
||||
""",
|
||||
contact=openapi.Contact(email="contact@mostovik.local"),
|
||||
license=openapi.License(name="BSD License"),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user