Skip to content

fast-api-redundant-response-model (FAST001)

Derived from the FastAPI linter.

Fix is always available.

This rule is unstable and in preview. The --preview flag is required for use.

What it does

Checks for FastAPI routes that use the optional response_model parameter with the same type as the return type.

Why is this bad?

FastAPI routes automatically infer the response model type from the return type, so specifying it explicitly is redundant.

The response_model parameter is used to override the default response model type. For example, response_model can be used to specify that a non-serializable response type should instead be serialized via an alternative type.

For more information, see the FastAPI documentation.

Example

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str


@app.post("/items/", response_model=Item)
async def create_item(item: Item) -> Item:
    return item

Use instead:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str


@app.post("/items/")
async def create_item(item: Item) -> Item:
    return item