Exemplo n.º 1
0
    def api_route(
        self,
        path: str,
        *,
        response_model: Type[Any] = None,
        status_code: int = 200,
        tags: List[str] = None,
        dependencies: Sequence[Depends] = None,
        summary: str = None,
        description: str = None,
        response_description: str = "Successful Response",
        responses: Dict[Union[int, str], Dict[str, Any]] = None,
        deprecated: bool = None,
        methods: List[str] = None,
        operation_id: str = None,
        response_model_include: Union[SetIntStr, DictIntStrAny] = None,
        response_model_exclude: Union[SetIntStr, DictIntStrAny] = set(),
        response_model_by_alias: bool = True,
        response_model_skip_defaults: bool = None,
        response_model_exclude_unset: bool = False,
        response_model_exclude_defaults: bool = False,
        response_model_exclude_none: bool = False,
        include_in_schema: bool = True,
        response_class: Type[Response] = None,
        name: str = None,
    ) -> Callable:
        if response_model_skip_defaults is not None:
            warning_response_model_skip_defaults_deprecated(
            )  # pragma: nocover

        def decorator(func: Callable) -> Callable:
            self.router.add_api_route(
                path,
                func,
                response_model=response_model,
                status_code=status_code,
                tags=tags or [],
                dependencies=dependencies,
                summary=summary,
                description=description,
                response_description=response_description,
                responses=responses or {},
                deprecated=deprecated,
                methods=methods,
                operation_id=operation_id,
                response_model_include=response_model_include,
                response_model_exclude=response_model_exclude,
                response_model_by_alias=response_model_by_alias,
                response_model_exclude_unset=bool(
                    response_model_exclude_unset
                    or response_model_skip_defaults),
                response_model_exclude_defaults=response_model_exclude_defaults,
                response_model_exclude_none=response_model_exclude_none,
                include_in_schema=include_in_schema,
                response_class=response_class or self.default_response_class,
                name=name,
            )
            return func

        return decorator
Exemplo n.º 2
0
 def add_api_route(
     self,
     path: str,
     endpoint: Callable,
     *,
     response_model: Type[Any] = None,
     status_code: int = 200,
     tags: List[str] = None,
     dependencies: Sequence[params.Depends] = None,
     summary: str = None,
     description: str = None,
     response_description: str = "Successful Response",
     responses: Dict[Union[int, str], Dict[str, Any]] = None,
     deprecated: bool = None,
     methods: Optional[Union[Set[str], List[str]]] = None,
     operation_id: str = None,
     response_model_include: Union[SetIntStr, DictIntStrAny] = None,
     response_model_exclude=None,
     response_model_by_alias: bool = True,
     response_model_skip_defaults: bool = None,
     response_model_exclude_unset: bool = False,
     include_in_schema: bool = True,
     response_class: Type[Response] = None,
     name: str = None,
     route_class_override: Optional[Type[APIRoute]] = None,
     callbacks: List[APIRoute] = None,
 ) -> None:
     if response_model_exclude is None:
         response_model_exclude = set()
     if response_model_skip_defaults is not None:
         warning_response_model_skip_defaults_deprecated(
         )  # pragma: nocover
     route_class = route_class_override or self.route_class
     route = route_class(
         path,
         endpoint=endpoint,
         response_model=response_model,
         status_code=status_code,
         tags=tags or [],
         dependencies=dependencies,
         summary=summary,
         description=description,
         response_description=response_description,
         responses=responses or {},
         deprecated=deprecated,
         methods=methods,
         operation_id=operation_id,
         response_model_include=response_model_include,
         response_model_exclude=response_model_exclude,
         response_model_by_alias=response_model_by_alias,
         response_model_exclude_unset=bool(response_model_exclude_unset
                                           or response_model_skip_defaults),
         include_in_schema=include_in_schema,
         response_class=response_class or self.default_response_class,
         name=name,
         dependency_overrides_provider=self.dependency_overrides_provider,
         callbacks=callbacks,
     )
     self.routes.append(route)
Exemplo n.º 3
0
 def patch(
     self,
     path: str,
     *,
     response_model: Optional[Type[Any]] = None,
     status_code: int = 200,
     tags: Optional[List[str]] = None,
     dependencies: Optional[Sequence[params.Depends]] = None,
     summary: Optional[str] = None,
     description: Optional[str] = None,
     response_description: str = "Successful Response",
     responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None,
     deprecated: Optional[bool] = None,
     operation_id: Optional[str] = None,
     response_model_include: Optional[Union[SetIntStr,
                                            DictIntStrAny]] = None,
     response_model_exclude: Union[SetIntStr, DictIntStrAny] = set(),
     response_model_by_alias: bool = True,
     response_model_skip_defaults: Optional[bool] = None,
     response_model_exclude_unset: bool = False,
     response_model_exclude_defaults: bool = False,
     response_model_exclude_none: bool = False,
     include_in_schema: bool = True,
     response_class: Optional[Type[Response]] = None,
     name: Optional[str] = None,
     callbacks: Optional[List[APIRoute]] = None,
 ) -> Callable:
     if response_model_skip_defaults is not None:
         warning_response_model_skip_defaults_deprecated(
         )  # pragma: nocover
     return self.api_route(
         path=path,
         response_model=response_model,
         status_code=status_code,
         tags=tags or [],
         dependencies=dependencies,
         summary=summary,
         description=description,
         response_description=response_description,
         responses=responses or {},
         deprecated=deprecated,
         methods=["PATCH"],
         operation_id=operation_id,
         response_model_include=response_model_include,
         response_model_exclude=response_model_exclude,
         response_model_by_alias=response_model_by_alias,
         response_model_exclude_unset=bool(response_model_exclude_unset
                                           or response_model_skip_defaults),
         response_model_exclude_defaults=response_model_exclude_defaults,
         response_model_exclude_none=response_model_exclude_none,
         include_in_schema=include_in_schema,
         response_class=response_class or self.default_response_class,
         name=name,
         callbacks=callbacks,
     )
Exemplo n.º 4
0
        response_model_include: Union[SetIntStr, DictIntStrAny, None] = None,
=======
        response_model_include: Optional[Union[SetIntStr, DictIntStrAny]] = None,
>>>>>>> 4ad7c55618bea79bd6001940819edefb14caa55e
        response_model_exclude: Union[SetIntStr, DictIntStrAny] = set(),
        response_model_by_alias: bool = True,
        response_model_skip_defaults: Optional[bool] = None,
        response_model_exclude_unset: bool = False,
        response_model_exclude_defaults: bool = False,
        response_model_exclude_none: bool = False,
        include_in_schema: bool = True,
        response_class: Optional[Type[Response]] = None,
        name: Optional[str] = None,
    ) -> None:
        if response_model_skip_defaults is not None:
            warning_response_model_skip_defaults_deprecated()  # pragma: nocover
        self.router.add_api_route(
            path,
            endpoint=endpoint,
            response_model=response_model,
            status_code=status_code,
            tags=tags or [],
            dependencies=dependencies,
            summary=summary,
            description=description,
            response_description=response_description,
            responses=responses or {},
            deprecated=deprecated,
            methods=methods,
            operation_id=operation_id,
            response_model_include=response_model_include,