Skip to main content

FastAPI Custom Responses

Project description

FastAPI Custom Responses

Provides normalized response objects and error handling

Example

from http import HTTPStatus
from fastapi_custom_responses import EXCEPTION_HANDLERS, ErrorResponse, ErrorResponseModel, Response
from fastapi import APIRouter, FastAPI, Request

# Initialize FastAPI
router = APIRouter()

app = FastAPI(
    title="API",
    description="My API",
    version="1.0.0",
    exception_handlers=EXCEPTION_HANDLERS, # Use error handler from library
)

# Define data model
class Data(Response):
    example: str

# Routes
@router.get(
    "/",
    response_model=Response[Data],
    responses={
        400: {"model": ErrorResponseModel, "description": "Bad request"},
        500: {"model": ErrorResponseModel, "description": "Internal server error"},
    },
)
async def index(_: Request) -> Response[Data]:
    """Index route."""

    return Response(
        success=True,
        data=Data(example="hello"),
    )

@router.get(
    "/return-error",
    response_model=Response[Data],
    responses={
        HTTPStatus.FORBIDDEN: {
            "description": "User belongs to a different organization",
            "model": ErrorResponseModel,
            "content": {
                "application/json": {
                    "example": {
                        "success": False,
                        "error": "User belongs to a different organization",
                    },
                },
            },
        },
    },
)
async def error_route(_: Request) -> Response:
    """Error route."""

    raise ErrorResponse(error="Your request is invalid.", status_code=HTTPStatus.BAD_REQUEST)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_custom_responses-0.0.11.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_custom_responses-0.0.11-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_custom_responses-0.0.11.tar.gz.

File metadata

File hashes

Hashes for fastapi_custom_responses-0.0.11.tar.gz
Algorithm Hash digest
SHA256 ab97143c5f8ade13a097ac4ea42633956f9ac4c76ccd70d4567ef2a5bdf7b073
MD5 18d2d69e6cb43b7fb7078437c2d79301
BLAKE2b-256 f375a2e16b8d2a05ff2bd394d123778a6df5088220de24eca08038ecd98627ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_custom_responses-0.0.11.tar.gz:

Publisher: publish-to-pypi.yml on julien777z/fastapi-custom-responses

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastapi_custom_responses-0.0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_custom_responses-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 2efa727fab4fadebe3f1776edf111c117ef95b44ca5c21143f8d4701641edc25
MD5 6399930687ffdfd09fa1918de9ca9f32
BLAKE2b-256 e0bb3260f2670c70d63cd137508705a629d7abafc09868fd5f7bea6430707f59

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_custom_responses-0.0.11-py3-none-any.whl:

Publisher: publish-to-pypi.yml on julien777z/fastapi-custom-responses

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page