mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-01 19:10:12 +03:00
Adds available endpoint formats to the autogenerated schema
This commit is contained in:
parent
40da2a21ef
commit
5cb9d1a39e
|
@ -212,6 +212,7 @@ class AutoSchema(ViewInspector):
|
||||||
fields += self.get_serializer_fields(path, method)
|
fields += self.get_serializer_fields(path, method)
|
||||||
fields += self.get_pagination_fields(path, method)
|
fields += self.get_pagination_fields(path, method)
|
||||||
fields += self.get_filter_fields(path, method)
|
fields += self.get_filter_fields(path, method)
|
||||||
|
fields += self.get_renderer_fields(path, method)
|
||||||
|
|
||||||
manual_fields = self.get_manual_fields(path, method)
|
manual_fields = self.get_manual_fields(path, method)
|
||||||
fields = self.update_fields(fields, manual_fields)
|
fields = self.update_fields(fields, manual_fields)
|
||||||
|
@ -409,6 +410,26 @@ class AutoSchema(ViewInspector):
|
||||||
fields += filter_backend().get_schema_fields(self.view)
|
fields += filter_backend().get_schema_fields(self.view)
|
||||||
return fields
|
return fields
|
||||||
|
|
||||||
|
def get_renderer_fields(self, path, method):
|
||||||
|
view = self.view
|
||||||
|
renderers = api_settings.DEFAULT_RENDERER_CLASSES
|
||||||
|
|
||||||
|
if getattr(view, "renderer_classes", None) and view.renderer_classes:
|
||||||
|
renderers = view.renderer_classes
|
||||||
|
|
||||||
|
formats = [r.format for r in renderers if r.format]
|
||||||
|
|
||||||
|
field = coreapi.Field(
|
||||||
|
name="format",
|
||||||
|
location="query",
|
||||||
|
required=False,
|
||||||
|
schema=coreschema.Enum(title="Response format",
|
||||||
|
description="Specify a custom format for the response",
|
||||||
|
enum=formats)
|
||||||
|
)
|
||||||
|
|
||||||
|
return [field]
|
||||||
|
|
||||||
def get_manual_fields(self, path, method):
|
def get_manual_fields(self, path, method):
|
||||||
return self._manual_fields
|
return self._manual_fields
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user