mirror of https://github.com/tiangolo/fastapi.git
♻️ Rename parameter content_type to response_class (#183)
This commit is contained in:
parent
8880c4cb03
commit
192ebba2a2
|
|
@ -4,6 +4,6 @@ from starlette.responses import UJSONResponse
|
|||
app = FastAPI()
|
||||
|
||||
|
||||
@app.get("/items/", content_type=UJSONResponse)
|
||||
@app.get("/items/", response_class=UJSONResponse)
|
||||
async def read_items():
|
||||
return [{"item_id": "Foo"}]
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from starlette.responses import HTMLResponse
|
|||
app = FastAPI()
|
||||
|
||||
|
||||
@app.get("/items/", content_type=HTMLResponse)
|
||||
@app.get("/items/", response_class=HTMLResponse)
|
||||
async def read_items():
|
||||
return """
|
||||
<html>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,6 @@ def generate_html_response():
|
|||
return HTMLResponse(content=html_content, status_code=200)
|
||||
|
||||
|
||||
@app.get("/items/", content_type=HTMLResponse)
|
||||
@app.get("/items/", response_class=HTMLResponse)
|
||||
async def read_items():
|
||||
return generate_html_response()
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ class FastAPI(Starlette):
|
|||
methods: List[str] = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> None:
|
||||
self.router.add_api_route(
|
||||
|
|
@ -136,7 +136,7 @@ class FastAPI(Starlette):
|
|||
methods=methods,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -155,7 +155,7 @@ class FastAPI(Starlette):
|
|||
methods: List[str] = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
def decorator(func: Callable) -> Callable:
|
||||
|
|
@ -173,7 +173,7 @@ class FastAPI(Starlette):
|
|||
methods=methods,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
return func
|
||||
|
|
@ -206,7 +206,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.get(
|
||||
|
|
@ -221,7 +221,7 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -239,7 +239,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.put(
|
||||
|
|
@ -254,7 +254,7 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -272,7 +272,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.post(
|
||||
|
|
@ -287,7 +287,7 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -305,7 +305,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.delete(
|
||||
|
|
@ -320,7 +320,7 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -338,7 +338,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.options(
|
||||
|
|
@ -353,7 +353,7 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -371,7 +371,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.head(
|
||||
|
|
@ -386,7 +386,7 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -404,7 +404,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.patch(
|
||||
|
|
@ -419,7 +419,7 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -437,7 +437,7 @@ class FastAPI(Starlette):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.router.trace(
|
||||
|
|
@ -452,6 +452,6 @@ class FastAPI(Starlette):
|
|||
deprecated=deprecated,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ def get_openapi_path(
|
|||
] = response
|
||||
status_code = str(route.status_code)
|
||||
response_schema = {"type": "string"}
|
||||
if lenient_issubclass(route.content_type, JSONResponse):
|
||||
if lenient_issubclass(route.response_class, JSONResponse):
|
||||
if route.response_field:
|
||||
response_schema, _ = field_schema(
|
||||
route.response_field,
|
||||
|
|
@ -211,7 +211,7 @@ def get_openapi_path(
|
|||
] = route.response_description
|
||||
operation.setdefault("responses", {}).setdefault(
|
||||
status_code, {}
|
||||
).setdefault("content", {}).setdefault(route.content_type.media_type, {})[
|
||||
).setdefault("content", {}).setdefault(route.response_class.media_type, {})[
|
||||
"schema"
|
||||
] = response_schema
|
||||
if all_route_params or route.body_field:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ def get_app(
|
|||
dependant: Dependant,
|
||||
body_field: Field = None,
|
||||
status_code: int = 200,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
response_field: Field = None,
|
||||
) -> Callable:
|
||||
assert dependant.call is not None, "dependant.call must me a function"
|
||||
|
|
@ -83,7 +83,7 @@ def get_app(
|
|||
response_data = serialize_response(
|
||||
field=response_field, response=raw_response
|
||||
)
|
||||
return content_type(
|
||||
return response_class(
|
||||
content=response_data,
|
||||
status_code=status_code,
|
||||
background=background_tasks,
|
||||
|
|
@ -110,7 +110,7 @@ class APIRoute(routing.Route):
|
|||
methods: List[str] = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
) -> None:
|
||||
assert path.startswith("/"), "Routed paths must always start with '/'"
|
||||
self.path = path
|
||||
|
|
@ -119,7 +119,7 @@ class APIRoute(routing.Route):
|
|||
self.response_model = response_model
|
||||
if self.response_model:
|
||||
assert lenient_issubclass(
|
||||
content_type, JSONResponse
|
||||
response_class, JSONResponse
|
||||
), "To declare a type the response must be a JSON response"
|
||||
response_name = "Response_" + self.name
|
||||
self.response_field: Optional[Field] = Field(
|
||||
|
|
@ -168,7 +168,7 @@ class APIRoute(routing.Route):
|
|||
self.methods = methods
|
||||
self.operation_id = operation_id
|
||||
self.include_in_schema = include_in_schema
|
||||
self.content_type = content_type
|
||||
self.response_class = response_class
|
||||
|
||||
self.path_regex, self.path_format, self.param_convertors = compile_path(path)
|
||||
assert inspect.isfunction(endpoint) or inspect.ismethod(
|
||||
|
|
@ -181,7 +181,7 @@ class APIRoute(routing.Route):
|
|||
dependant=self.dependant,
|
||||
body_field=self.body_field,
|
||||
status_code=self.status_code,
|
||||
content_type=self.content_type,
|
||||
response_class=self.response_class,
|
||||
response_field=self.response_field,
|
||||
)
|
||||
)
|
||||
|
|
@ -204,7 +204,7 @@ class APIRouter(routing.Router):
|
|||
methods: List[str] = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> None:
|
||||
route = APIRoute(
|
||||
|
|
@ -221,7 +221,7 @@ class APIRouter(routing.Router):
|
|||
methods=methods,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
self.routes.append(route)
|
||||
|
|
@ -241,7 +241,7 @@ class APIRouter(routing.Router):
|
|||
methods: List[str] = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
def decorator(func: Callable) -> Callable:
|
||||
|
|
@ -259,7 +259,7 @@ class APIRouter(routing.Router):
|
|||
methods=methods,
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
return func
|
||||
|
|
@ -298,7 +298,7 @@ class APIRouter(routing.Router):
|
|||
methods=route.methods,
|
||||
operation_id=route.operation_id,
|
||||
include_in_schema=route.include_in_schema,
|
||||
content_type=route.content_type,
|
||||
response_class=route.response_class,
|
||||
name=route.name,
|
||||
)
|
||||
elif isinstance(route, routing.Route):
|
||||
|
|
@ -328,7 +328,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -344,7 +344,7 @@ class APIRouter(routing.Router):
|
|||
methods=["GET"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -362,7 +362,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -378,7 +378,7 @@ class APIRouter(routing.Router):
|
|||
methods=["PUT"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -396,7 +396,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -412,7 +412,7 @@ class APIRouter(routing.Router):
|
|||
methods=["POST"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -430,7 +430,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -446,7 +446,7 @@ class APIRouter(routing.Router):
|
|||
methods=["DELETE"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -464,7 +464,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -480,7 +480,7 @@ class APIRouter(routing.Router):
|
|||
methods=["OPTIONS"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -498,7 +498,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -514,7 +514,7 @@ class APIRouter(routing.Router):
|
|||
methods=["HEAD"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -532,7 +532,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -548,7 +548,7 @@ class APIRouter(routing.Router):
|
|||
methods=["PATCH"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
||||
|
|
@ -566,7 +566,7 @@ class APIRouter(routing.Router):
|
|||
deprecated: bool = None,
|
||||
operation_id: str = None,
|
||||
include_in_schema: bool = True,
|
||||
content_type: Type[Response] = JSONResponse,
|
||||
response_class: Type[Response] = JSONResponse,
|
||||
name: str = None,
|
||||
) -> Callable:
|
||||
return self.api_route(
|
||||
|
|
@ -582,6 +582,6 @@ class APIRouter(routing.Router):
|
|||
methods=["TRACE"],
|
||||
operation_id=operation_id,
|
||||
include_in_schema=include_in_schema,
|
||||
content_type=content_type,
|
||||
response_class=response_class,
|
||||
name=name,
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue