mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-26 16:30:41 +03:00
Update schema generator example (#4267)
1. The returns from the views needs to be a Response 2. I found that instantiating the generator at the module level caused an import error when starting Django, likely because it is executing before all the app load magic happened. Moving it into the view method solved this.
This commit is contained in:
parent
bea243a0ca
commit
d80b0eaead
|
@ -157,14 +157,14 @@ return the schema.
|
||||||
**views.py:**
|
**views.py:**
|
||||||
|
|
||||||
from rest_framework.decorators import api_view, renderer_classes
|
from rest_framework.decorators import api_view, renderer_classes
|
||||||
from rest_framework import renderers, schemas
|
from rest_framework import renderers, response, schemas
|
||||||
|
|
||||||
generator = schemas.SchemaGenerator(title='Bookings API')
|
|
||||||
|
|
||||||
@api_view()
|
@api_view()
|
||||||
@renderer_classes([renderers.CoreJSONRenderer])
|
@renderer_classes([renderers.CoreJSONRenderer])
|
||||||
def schema_view(request):
|
def schema_view(request):
|
||||||
return generator.get_schema()
|
generator = schemas.SchemaGenerator(title='Bookings API')
|
||||||
|
return response.Response(generator.get_schema())
|
||||||
|
|
||||||
**urls.py:**
|
**urls.py:**
|
||||||
|
|
||||||
|
@ -185,7 +185,8 @@ you need to pass the `request` argument to the `get_schema()` method, like so:
|
||||||
@api_view()
|
@api_view()
|
||||||
@renderer_classes([renderers.CoreJSONRenderer])
|
@renderer_classes([renderers.CoreJSONRenderer])
|
||||||
def schema_view(request):
|
def schema_view(request):
|
||||||
return generator.get_schema(request=request)
|
generator = schemas.SchemaGenerator(title='Bookings API')
|
||||||
|
return response.Response(generator.get_schema(request=request))
|
||||||
|
|
||||||
## Explicit schema definition
|
## Explicit schema definition
|
||||||
|
|
||||||
|
@ -196,7 +197,7 @@ representation.
|
||||||
|
|
||||||
import coreapi
|
import coreapi
|
||||||
from rest_framework.decorators import api_view, renderer_classes
|
from rest_framework.decorators import api_view, renderer_classes
|
||||||
from rest_framework import renderers
|
from rest_framework import renderers, response
|
||||||
|
|
||||||
schema = coreapi.Document(
|
schema = coreapi.Document(
|
||||||
title='Bookings API',
|
title='Bookings API',
|
||||||
|
@ -208,7 +209,7 @@ representation.
|
||||||
@api_view()
|
@api_view()
|
||||||
@renderer_classes([renderers.CoreJSONRenderer])
|
@renderer_classes([renderers.CoreJSONRenderer])
|
||||||
def schema_view(request):
|
def schema_view(request):
|
||||||
return schema
|
return response.Response(schema)
|
||||||
|
|
||||||
## Static schema file
|
## Static schema file
|
||||||
|
|
||||||
|
@ -273,7 +274,8 @@ Returns a `coreapi.Document` instance that represents the API schema.
|
||||||
@api_view
|
@api_view
|
||||||
@renderer_classes([renderers.CoreJSONRenderer])
|
@renderer_classes([renderers.CoreJSONRenderer])
|
||||||
def schema_view(request):
|
def schema_view(request):
|
||||||
return generator.get_schema()
|
generator = schemas.SchemaGenerator(title='Bookings API')
|
||||||
|
return Response(generator.get_schema())
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user