def get_responses(self): response_serializers = self.get_response_serializers() response_serializers.pop('201') response_serializers['200'] = ResponseSerializer() return openapi.Responses( responses=self.get_response_schemas(response_serializers))
def get_operation(self, operation_keys): return openapi.Operation( operation_id='media_embed', responses=openapi.Responses( {302: openapi.Response(description='Media embed page')}), tags=['media'], )
def get_responses(self): """Get the possible responses for this view as a swagger :class:`.Responses` object. :return: the documented responses :rtype: openapi.Responses """ response_serializers = self.get_response_serializers() return openapi.Responses( responses=self.get_response_schemas(response_serializers) )
def get_responses(self): """ Get the possible responses for this view as a swagger :class:`.Responses` object. :return: the documented responses :rtype: openapi.Responses """ response_serializers = self.get_response_serializers() response_serializers.update({"400": "BAD REQUEST"}) response_serializers.update({"403": "FORBIDDEN"}) response_serializers.update({"500": "INTERNAL SERVER ERROR"}) return openapi.Responses( responses=self.get_response_schemas(response_serializers))
def test_get_operation_with_serializer(): view = View() route = get_route(Controller.post_with_serializer) View.post.route = route reference_resolver = openapi.ReferenceResolver('definitions', 'parameters', force_init=True) auto_schema = SwaggerAutoSchema(view, 'path', route.http_method, reference_resolver, 'request', {}) operation = auto_schema.get_operation(['test_app', 'post']) schema_ref = openapi.SchemaRef( resolver=reference_resolver, schema_name='User', ) parameters = [ openapi.Parameter( name='data', in_=openapi.IN_BODY, required=True, schema=schema_ref, ), ] responses = openapi.Responses({ '200': openapi.Response( description='', schema=openapi.Schema( type=openapi.TYPE_OBJECT, properties={ 'name': { 'type': 'string', }, }, ), ), }) assert operation == openapi.Operation( operation_id='Controller.post_with_serializer', responses=responses, consumes=['application/json'], produces=['application/json'], tags=['test_app'], parameters=parameters, ) del View.post.route
def get_operation(self, operation_keys): return openapi.Operation( operation_id='media_source', responses=openapi.Responses( {302: openapi.Response(description='Media source stream')}), parameters=[ openapi.Parameter(name='mimeType', in_=openapi.IN_QUERY, description='MIME type of media source', type=openapi.TYPE_STRING), openapi.Parameter(name='width', in_=openapi.IN_QUERY, description='Width of media source', type=openapi.TYPE_INTEGER), openapi.Parameter(name='height', in_=openapi.IN_QUERY, description='Height of media source', type=openapi.TYPE_INTEGER), ], tags=['media'], )
def test_get_operation_without_route(): view = View() reference_resolver = openapi.ReferenceResolver('definitions', 'parameters', force_init=True) auto_schema = SwaggerAutoSchema(view, 'path', 'get', reference_resolver, 'request', {}) operation = auto_schema.get_operation(['test_app', 'post']) parameters = [] responses = openapi.Responses({ '200': openapi.Response(description=''), }) assert operation == openapi.Operation( description='', operation_id='test_app_post', responses=responses, consumes=['application/json'], produces=['application/json'], tags=['test_app'], parameters=parameters, )
def get_operation(self, operation_keys): return openapi.Operation( operation_id='media_poster', responses=openapi.Responses( {302: openapi.Response(description='Media poster image')}), parameters=[ openapi.Parameter( name='width', in_=openapi.IN_PATH, description='Desired width of image.', type=openapi.TYPE_INTEGER, enum=POSTER_IMAGE_VALID_WIDTHS, ), openapi.Parameter( name='extension', in_=openapi.IN_PATH, description='Desired format of image.', type=openapi.TYPE_STRING, enum=POSTER_IMAGE_VALID_EXTENSIONS, ), ], tags=['media'], )
def _get_responses(self, route: Route): responses_schemas = build_responses_schemas(route) return openapi.Responses(responses=self.get_response_schemas(responses_schemas))
def test_get_operation(): view = View() route = get_route(Controller.post) View.post.route = route auto_schema = SwaggerAutoSchema(view, 'path', route.http_method, 'components', 'request', {}) operation = auto_schema.get_operation(['test_app', 'post']) parameters = [ openapi.Parameter( name='data', in_=openapi.IN_BODY, required=True, schema=openapi.Schema( title='UserDTO', type=openapi.TYPE_OBJECT, properties={ 'name': { 'type': openapi.TYPE_STRING, }, }, ), ), openapi.Parameter( name='path_param', in_=openapi.IN_PATH, description='', required=True, type=openapi.TYPE_INTEGER, ), openapi.Parameter( name='query_param', in_=openapi.IN_QUERY, description='', required=True, type=openapi.TYPE_INTEGER, ), ] responses = openapi.Responses({ '200': openapi.Response( description='', schema=openapi.Schema( type=openapi.TYPE_OBJECT, properties={ 'name': { 'type': 'string', }, }, ), ), }) assert operation == openapi.Operation( operation_id='Controller.post', responses=responses, consumes=['application/json; charset=utf-8'], produces=['application/json; charset=utf-8'], description='This is post method', tags=['test_app'], parameters=parameters, )