Skip to content

Commit 563a20a

Browse files
authored
make get_reference public (#7515)
1 parent bb7dcef commit 563a20a

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

docs/api-guide/schemas.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,11 @@ Computes the component's name from the serializer.
313313

314314
You may see warnings if your API has duplicate component names. If so you can override `get_component_name()` or pass the `component_name` `__init__()` kwarg (see below) to provide different names.
315315

316+
#### `get_reference()`
317+
318+
Returns a reference to the serializer component. This may be useful if you override `get_schema()`.
319+
320+
316321
#### `map_serializer()`
317322

318323
Maps serializers to their OpenAPI representations.

rest_framework/schemas/openapi.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ def get_response_serializer(self, path, method):
636636
"""
637637
return self.get_serializer(path, method)
638638

639-
def _get_reference(self, serializer):
639+
def get_reference(self, serializer):
640640
return {'$ref': '#/components/schemas/{}'.format(self.get_component_name(serializer))}
641641

642642
def get_request_body(self, path, method):
@@ -650,7 +650,7 @@ def get_request_body(self, path, method):
650650
if not isinstance(serializer, serializers.Serializer):
651651
item_schema = {}
652652
else:
653-
item_schema = self._get_reference(serializer)
653+
item_schema = self.get_reference(serializer)
654654

655655
return {
656656
'content': {
@@ -674,7 +674,7 @@ def get_responses(self, path, method):
674674
if not isinstance(serializer, serializers.Serializer):
675675
item_schema = {}
676676
else:
677-
item_schema = self._get_reference(serializer)
677+
item_schema = self.get_reference(serializer)
678678

679679
if is_list_view(path, method, self.view):
680680
response_schema = {
@@ -808,3 +808,11 @@ def _allows_filters(self, path, method):
808808
RemovedInDRF314Warning, stacklevel=2
809809
)
810810
return self.allows_filters(path, method)
811+
812+
def _get_reference(self, serializer):
813+
warnings.warn(
814+
"Method `_get_reference()` has been renamed to `get_reference()`. "
815+
"The old name will be removed in DRF v3.14.",
816+
RemovedInDRF314Warning, stacklevel=2
817+
)
818+
return self.get_reference(serializer)

0 commit comments

Comments
 (0)