make get_reference public (#7515)

This commit is contained in:
Alan Crosswell 2022-06-06 08:44:02 -04:00 committed by GitHub
parent bb7dcef19b
commit 563a20a040
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 3 deletions

View File

@ -313,6 +313,11 @@ Computes the component's name from the serializer.
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. 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.
#### `get_reference()`
Returns a reference to the serializer component. This may be useful if you override `get_schema()`.
#### `map_serializer()` #### `map_serializer()`
Maps serializers to their OpenAPI representations. Maps serializers to their OpenAPI representations.

View File

@ -636,7 +636,7 @@ class AutoSchema(ViewInspector):
""" """
return self.get_serializer(path, method) return self.get_serializer(path, method)
def _get_reference(self, serializer): def get_reference(self, serializer):
return {'$ref': '#/components/schemas/{}'.format(self.get_component_name(serializer))} return {'$ref': '#/components/schemas/{}'.format(self.get_component_name(serializer))}
def get_request_body(self, path, method): def get_request_body(self, path, method):
@ -650,7 +650,7 @@ class AutoSchema(ViewInspector):
if not isinstance(serializer, serializers.Serializer): if not isinstance(serializer, serializers.Serializer):
item_schema = {} item_schema = {}
else: else:
item_schema = self._get_reference(serializer) item_schema = self.get_reference(serializer)
return { return {
'content': { 'content': {
@ -674,7 +674,7 @@ class AutoSchema(ViewInspector):
if not isinstance(serializer, serializers.Serializer): if not isinstance(serializer, serializers.Serializer):
item_schema = {} item_schema = {}
else: else:
item_schema = self._get_reference(serializer) item_schema = self.get_reference(serializer)
if is_list_view(path, method, self.view): if is_list_view(path, method, self.view):
response_schema = { response_schema = {
@ -808,3 +808,11 @@ class AutoSchema(ViewInspector):
RemovedInDRF314Warning, stacklevel=2 RemovedInDRF314Warning, stacklevel=2
) )
return self.allows_filters(path, method) return self.allows_filters(path, method)
def _get_reference(self, serializer):
warnings.warn(
"Method `_get_reference()` has been renamed to `get_reference()`. "
"The old name will be removed in DRF v3.14.",
RemovedInDRF314Warning, stacklevel=2
)
return self.get_reference(serializer)