I went through Django REST Swagger 2.1.2 documentation. When I tried with class based views, it was working fine.
But i did not find any reference on how to enable swagger for function based views as shown below:
@api_view(['GET', 'POST'])
def app_info(request):
...
return response
Most of my views.py
is filled with function based views, just like above.
Any help on how to enable the same will greatly appreciated. Thanks!
I am using Django: 1.8; Django REST Swagger: 2.1.2; DRF: 3.6.2
Django REST Swagger: deprecated (2019-06-04)
Detail View refers to a view (logic) to display a particular instance of a table from the database with all the necessary details. It is used to display multiple types of data on a single page or view, for example, profile of a user.
APIView allow us to define functions that match standard HTTP methods like GET, POST, PUT, PATCH, etc. Viewsets allow us to define functions that match to common API object actions like : LIST, CREATE, RETRIEVE, UPDATE, etc.
You should be able to use @renderer_classes
decorator:
from rest_framework_swagger import renderers
from rest_framework.decorators import api_view, renderer_classes
@api_view(['GET', 'POST'])
@renderer_classes([renderers.OpenAPIRenderer, renderers.SwaggerUIRenderer])
def app_info(request):
...
return response
Also, it should be worth mentioning, that if you don't want to use this decorator on every view you can specify DEFAULT_RENDERER_CLASSES
in settings
EDIT: It seems it's in the docs after all. Check the very bottom of this page: https://django-rest-swagger.readthedocs.io/en/latest/schema/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With