Django REST Framework:无需 ViewSet,将 API 添加到 API Root 页面
如果使用的是 Django REST framework 3.12 及以上版本,可以使用 @api_view 装饰器和 @swagger_auto_schema 装饰器来添加 API 到 API root 页面。
具体步骤如下:
- 在
urls.py中定义一个 API view,使用@api_view装饰器和@swagger_auto_schema装饰器:
from rest_framework.decorators import api_view, swagger_auto_schema
from rest_framework.response import Response
@api_view(['GET'])
@swagger_auto_schema(operation_summary='API summary', operation_description='API description')
def my_api(request):
'''
API docstring
'''
data = {
'message': 'Hello, world!'
}
return Response(data)
- 在
urls.py中定义一个 API root view:
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view(['GET'])
def api_root(request, format=None):
'''
API root docstring
'''
data = {
'my_api': request.build_absolute_uri(reverse('my_api')),
}
return Response(data)
- 在
urls.py中注册 API root view 和 API view:
from django.urls import path, reverse
from .views import api_root, my_api
urlpatterns = [
path('', api_root, name='api_root'),
path('my_api/', my_api, name='my_api'),
]
- 运行 Django 项目,访问 API root 页面即可看到添加的 API:
http://localhost:8000/
原文地址: https://www.cveoy.top/t/topic/loXV 著作权归作者所有。请勿转载和采集!