| | from typing import Any, Callable, Dict, List, Optional, Sequence, Union |
| |
|
| | from fastapi import params |
| | from fastapi._compat import Undefined |
| | from fastapi.openapi.models import Example |
| | from typing_extensions import Annotated, Doc, deprecated |
| |
|
| | _Unset: Any = Undefined |
| |
|
| |
|
| | def Path( |
| | default: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Default value if the parameter field is not set. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = ..., |
| | *, |
| | default_factory: Annotated[ |
| | Union[Callable[[], Any], None], |
| | Doc( |
| | """ |
| | A callable to generate the default value. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = _Unset, |
| | alias: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | An alternative name for the parameter field. |
| | |
| | This will be used to extract the data and for the generated OpenAPI. |
| | It is particularly useful when you can't use the name you want because it |
| | is a Python reserved keyword or similar. |
| | """ |
| | ), |
| | ] = None, |
| | alias_priority: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Priority of the alias. This affects whether an alias generator is used. |
| | """ |
| | ), |
| | ] = _Unset, |
| | |
| | |
| | validation_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Whitelist' validation step. The parameter field will be the single one |
| | allowed by the alias or set of aliases defined. |
| | """ |
| | ), |
| | ] = None, |
| | serialization_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Blacklist' validation step. The vanilla parameter field will be the |
| | single one of the alias' or set of aliases' fields and all the other |
| | fields will be ignored at serialization time. |
| | """ |
| | ), |
| | ] = None, |
| | title: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable title. |
| | """ |
| | ), |
| | ] = None, |
| | description: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable description. |
| | """ |
| | ), |
| | ] = None, |
| | gt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than. If set, value must be greater than this. Only applicable to |
| | numbers. |
| | """ |
| | ), |
| | ] = None, |
| | ge: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than or equal. If set, value must be greater than or equal to |
| | this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | lt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than. If set, value must be less than this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | le: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than or equal. If set, value must be less than or equal to this. |
| | Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | min_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Minimum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | max_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Maximum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | pattern: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | ] = None, |
| | regex: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | deprecated( |
| | "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." |
| | ), |
| | ] = None, |
| | discriminator: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | Parameter field name for discriminating the type in a tagged union. |
| | """ |
| | ), |
| | ] = None, |
| | strict: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | If `True`, strict validation is applied to the field. |
| | """ |
| | ), |
| | ] = _Unset, |
| | multiple_of: Annotated[ |
| | Union[float, None], |
| | Doc( |
| | """ |
| | Value must be a multiple of this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | allow_inf_nan: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | Allow `inf`, `-inf`, `nan`. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | max_digits: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of allow digits for strings. |
| | """ |
| | ), |
| | ] = _Unset, |
| | decimal_places: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of decimal places allowed for numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | examples: Annotated[ |
| | Optional[List[Any]], |
| | Doc( |
| | """ |
| | Example values for this field. |
| | """ |
| | ), |
| | ] = None, |
| | example: Annotated[ |
| | Optional[Any], |
| | deprecated( |
| | "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " |
| | "although still supported. Use examples instead." |
| | ), |
| | ] = _Unset, |
| | openapi_examples: Annotated[ |
| | Optional[Dict[str, Example]], |
| | Doc( |
| | """ |
| | OpenAPI-specific examples. |
| | |
| | It will be added to the generated OpenAPI (e.g. visible at `/docs`). |
| | |
| | Swagger UI (that provides the `/docs` interface) has better support for the |
| | OpenAPI-specific examples than the JSON Schema `examples`, that's the main |
| | use case for this. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). |
| | """ |
| | ), |
| | ] = None, |
| | deprecated: Annotated[ |
| | Optional[bool], |
| | Doc( |
| | """ |
| | Mark this parameter field as deprecated. |
| | |
| | It will affect the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = None, |
| | include_in_schema: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | To include (or not) this parameter field in the generated OpenAPI. |
| | You probably don't need it, but it's available. |
| | |
| | This affects the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = True, |
| | json_schema_extra: Annotated[ |
| | Union[Dict[str, Any], None], |
| | Doc( |
| | """ |
| | Any additional JSON schema data. |
| | """ |
| | ), |
| | ] = None, |
| | **extra: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Include extra fields used by the JSON Schema. |
| | """ |
| | ), |
| | deprecated( |
| | """ |
| | The `extra` kwargs is deprecated. Use `json_schema_extra` instead. |
| | """ |
| | ), |
| | ], |
| | ) -> Any: |
| | """ |
| | Declare a path parameter for a *path operation*. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Path Parameters and Numeric Validations](https://fastapi.tiangolo.com/tutorial/path-params-numeric-validations/). |
| | |
| | ```python |
| | from typing import Annotated |
| | |
| | from fastapi import FastAPI, Path |
| | |
| | app = FastAPI() |
| | |
| | |
| | @app.get("/items/{item_id}") |
| | async def read_items( |
| | item_id: Annotated[int, Path(title="The ID of the item to get")], |
| | ): |
| | return {"item_id": item_id} |
| | ``` |
| | """ |
| | return params.Path( |
| | default=default, |
| | default_factory=default_factory, |
| | alias=alias, |
| | alias_priority=alias_priority, |
| | validation_alias=validation_alias, |
| | serialization_alias=serialization_alias, |
| | title=title, |
| | description=description, |
| | gt=gt, |
| | ge=ge, |
| | lt=lt, |
| | le=le, |
| | min_length=min_length, |
| | max_length=max_length, |
| | pattern=pattern, |
| | regex=regex, |
| | discriminator=discriminator, |
| | strict=strict, |
| | multiple_of=multiple_of, |
| | allow_inf_nan=allow_inf_nan, |
| | max_digits=max_digits, |
| | decimal_places=decimal_places, |
| | example=example, |
| | examples=examples, |
| | openapi_examples=openapi_examples, |
| | deprecated=deprecated, |
| | include_in_schema=include_in_schema, |
| | json_schema_extra=json_schema_extra, |
| | **extra, |
| | ) |
| |
|
| |
|
| | def Query( |
| | default: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Default value if the parameter field is not set. |
| | """ |
| | ), |
| | ] = Undefined, |
| | *, |
| | default_factory: Annotated[ |
| | Union[Callable[[], Any], None], |
| | Doc( |
| | """ |
| | A callable to generate the default value. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = _Unset, |
| | alias: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | An alternative name for the parameter field. |
| | |
| | This will be used to extract the data and for the generated OpenAPI. |
| | It is particularly useful when you can't use the name you want because it |
| | is a Python reserved keyword or similar. |
| | """ |
| | ), |
| | ] = None, |
| | alias_priority: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Priority of the alias. This affects whether an alias generator is used. |
| | """ |
| | ), |
| | ] = _Unset, |
| | |
| | |
| | validation_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Whitelist' validation step. The parameter field will be the single one |
| | allowed by the alias or set of aliases defined. |
| | """ |
| | ), |
| | ] = None, |
| | serialization_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Blacklist' validation step. The vanilla parameter field will be the |
| | single one of the alias' or set of aliases' fields and all the other |
| | fields will be ignored at serialization time. |
| | """ |
| | ), |
| | ] = None, |
| | title: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable title. |
| | """ |
| | ), |
| | ] = None, |
| | description: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable description. |
| | """ |
| | ), |
| | ] = None, |
| | gt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than. If set, value must be greater than this. Only applicable to |
| | numbers. |
| | """ |
| | ), |
| | ] = None, |
| | ge: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than or equal. If set, value must be greater than or equal to |
| | this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | lt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than. If set, value must be less than this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | le: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than or equal. If set, value must be less than or equal to this. |
| | Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | min_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Minimum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | max_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Maximum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | pattern: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | ] = None, |
| | regex: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | deprecated( |
| | "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." |
| | ), |
| | ] = None, |
| | discriminator: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | Parameter field name for discriminating the type in a tagged union. |
| | """ |
| | ), |
| | ] = None, |
| | strict: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | If `True`, strict validation is applied to the field. |
| | """ |
| | ), |
| | ] = _Unset, |
| | multiple_of: Annotated[ |
| | Union[float, None], |
| | Doc( |
| | """ |
| | Value must be a multiple of this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | allow_inf_nan: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | Allow `inf`, `-inf`, `nan`. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | max_digits: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of allow digits for strings. |
| | """ |
| | ), |
| | ] = _Unset, |
| | decimal_places: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of decimal places allowed for numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | examples: Annotated[ |
| | Optional[List[Any]], |
| | Doc( |
| | """ |
| | Example values for this field. |
| | """ |
| | ), |
| | ] = None, |
| | example: Annotated[ |
| | Optional[Any], |
| | deprecated( |
| | "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " |
| | "although still supported. Use examples instead." |
| | ), |
| | ] = _Unset, |
| | openapi_examples: Annotated[ |
| | Optional[Dict[str, Example]], |
| | Doc( |
| | """ |
| | OpenAPI-specific examples. |
| | |
| | It will be added to the generated OpenAPI (e.g. visible at `/docs`). |
| | |
| | Swagger UI (that provides the `/docs` interface) has better support for the |
| | OpenAPI-specific examples than the JSON Schema `examples`, that's the main |
| | use case for this. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). |
| | """ |
| | ), |
| | ] = None, |
| | deprecated: Annotated[ |
| | Optional[bool], |
| | Doc( |
| | """ |
| | Mark this parameter field as deprecated. |
| | |
| | It will affect the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = None, |
| | include_in_schema: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | To include (or not) this parameter field in the generated OpenAPI. |
| | You probably don't need it, but it's available. |
| | |
| | This affects the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = True, |
| | json_schema_extra: Annotated[ |
| | Union[Dict[str, Any], None], |
| | Doc( |
| | """ |
| | Any additional JSON schema data. |
| | """ |
| | ), |
| | ] = None, |
| | **extra: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Include extra fields used by the JSON Schema. |
| | """ |
| | ), |
| | deprecated( |
| | """ |
| | The `extra` kwargs is deprecated. Use `json_schema_extra` instead. |
| | """ |
| | ), |
| | ], |
| | ) -> Any: |
| | return params.Query( |
| | default=default, |
| | default_factory=default_factory, |
| | alias=alias, |
| | alias_priority=alias_priority, |
| | validation_alias=validation_alias, |
| | serialization_alias=serialization_alias, |
| | title=title, |
| | description=description, |
| | gt=gt, |
| | ge=ge, |
| | lt=lt, |
| | le=le, |
| | min_length=min_length, |
| | max_length=max_length, |
| | pattern=pattern, |
| | regex=regex, |
| | discriminator=discriminator, |
| | strict=strict, |
| | multiple_of=multiple_of, |
| | allow_inf_nan=allow_inf_nan, |
| | max_digits=max_digits, |
| | decimal_places=decimal_places, |
| | example=example, |
| | examples=examples, |
| | openapi_examples=openapi_examples, |
| | deprecated=deprecated, |
| | include_in_schema=include_in_schema, |
| | json_schema_extra=json_schema_extra, |
| | **extra, |
| | ) |
| |
|
| |
|
| | def Header( |
| | default: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Default value if the parameter field is not set. |
| | """ |
| | ), |
| | ] = Undefined, |
| | *, |
| | default_factory: Annotated[ |
| | Union[Callable[[], Any], None], |
| | Doc( |
| | """ |
| | A callable to generate the default value. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = _Unset, |
| | alias: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | An alternative name for the parameter field. |
| | |
| | This will be used to extract the data and for the generated OpenAPI. |
| | It is particularly useful when you can't use the name you want because it |
| | is a Python reserved keyword or similar. |
| | """ |
| | ), |
| | ] = None, |
| | alias_priority: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Priority of the alias. This affects whether an alias generator is used. |
| | """ |
| | ), |
| | ] = _Unset, |
| | |
| | |
| | validation_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Whitelist' validation step. The parameter field will be the single one |
| | allowed by the alias or set of aliases defined. |
| | """ |
| | ), |
| | ] = None, |
| | serialization_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Blacklist' validation step. The vanilla parameter field will be the |
| | single one of the alias' or set of aliases' fields and all the other |
| | fields will be ignored at serialization time. |
| | """ |
| | ), |
| | ] = None, |
| | convert_underscores: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | Automatically convert underscores to hyphens in the parameter field name. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Header Parameters](https://fastapi.tiangolo.com/tutorial/header-params/#automatic-conversion) |
| | """ |
| | ), |
| | ] = True, |
| | title: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable title. |
| | """ |
| | ), |
| | ] = None, |
| | description: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable description. |
| | """ |
| | ), |
| | ] = None, |
| | gt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than. If set, value must be greater than this. Only applicable to |
| | numbers. |
| | """ |
| | ), |
| | ] = None, |
| | ge: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than or equal. If set, value must be greater than or equal to |
| | this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | lt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than. If set, value must be less than this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | le: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than or equal. If set, value must be less than or equal to this. |
| | Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | min_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Minimum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | max_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Maximum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | pattern: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | ] = None, |
| | regex: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | deprecated( |
| | "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." |
| | ), |
| | ] = None, |
| | discriminator: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | Parameter field name for discriminating the type in a tagged union. |
| | """ |
| | ), |
| | ] = None, |
| | strict: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | If `True`, strict validation is applied to the field. |
| | """ |
| | ), |
| | ] = _Unset, |
| | multiple_of: Annotated[ |
| | Union[float, None], |
| | Doc( |
| | """ |
| | Value must be a multiple of this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | allow_inf_nan: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | Allow `inf`, `-inf`, `nan`. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | max_digits: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of allow digits for strings. |
| | """ |
| | ), |
| | ] = _Unset, |
| | decimal_places: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of decimal places allowed for numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | examples: Annotated[ |
| | Optional[List[Any]], |
| | Doc( |
| | """ |
| | Example values for this field. |
| | """ |
| | ), |
| | ] = None, |
| | example: Annotated[ |
| | Optional[Any], |
| | deprecated( |
| | "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " |
| | "although still supported. Use examples instead." |
| | ), |
| | ] = _Unset, |
| | openapi_examples: Annotated[ |
| | Optional[Dict[str, Example]], |
| | Doc( |
| | """ |
| | OpenAPI-specific examples. |
| | |
| | It will be added to the generated OpenAPI (e.g. visible at `/docs`). |
| | |
| | Swagger UI (that provides the `/docs` interface) has better support for the |
| | OpenAPI-specific examples than the JSON Schema `examples`, that's the main |
| | use case for this. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). |
| | """ |
| | ), |
| | ] = None, |
| | deprecated: Annotated[ |
| | Optional[bool], |
| | Doc( |
| | """ |
| | Mark this parameter field as deprecated. |
| | |
| | It will affect the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = None, |
| | include_in_schema: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | To include (or not) this parameter field in the generated OpenAPI. |
| | You probably don't need it, but it's available. |
| | |
| | This affects the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = True, |
| | json_schema_extra: Annotated[ |
| | Union[Dict[str, Any], None], |
| | Doc( |
| | """ |
| | Any additional JSON schema data. |
| | """ |
| | ), |
| | ] = None, |
| | **extra: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Include extra fields used by the JSON Schema. |
| | """ |
| | ), |
| | deprecated( |
| | """ |
| | The `extra` kwargs is deprecated. Use `json_schema_extra` instead. |
| | """ |
| | ), |
| | ], |
| | ) -> Any: |
| | return params.Header( |
| | default=default, |
| | default_factory=default_factory, |
| | alias=alias, |
| | alias_priority=alias_priority, |
| | validation_alias=validation_alias, |
| | serialization_alias=serialization_alias, |
| | convert_underscores=convert_underscores, |
| | title=title, |
| | description=description, |
| | gt=gt, |
| | ge=ge, |
| | lt=lt, |
| | le=le, |
| | min_length=min_length, |
| | max_length=max_length, |
| | pattern=pattern, |
| | regex=regex, |
| | discriminator=discriminator, |
| | strict=strict, |
| | multiple_of=multiple_of, |
| | allow_inf_nan=allow_inf_nan, |
| | max_digits=max_digits, |
| | decimal_places=decimal_places, |
| | example=example, |
| | examples=examples, |
| | openapi_examples=openapi_examples, |
| | deprecated=deprecated, |
| | include_in_schema=include_in_schema, |
| | json_schema_extra=json_schema_extra, |
| | **extra, |
| | ) |
| |
|
| |
|
| | def Cookie( |
| | default: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Default value if the parameter field is not set. |
| | """ |
| | ), |
| | ] = Undefined, |
| | *, |
| | default_factory: Annotated[ |
| | Union[Callable[[], Any], None], |
| | Doc( |
| | """ |
| | A callable to generate the default value. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = _Unset, |
| | alias: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | An alternative name for the parameter field. |
| | |
| | This will be used to extract the data and for the generated OpenAPI. |
| | It is particularly useful when you can't use the name you want because it |
| | is a Python reserved keyword or similar. |
| | """ |
| | ), |
| | ] = None, |
| | alias_priority: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Priority of the alias. This affects whether an alias generator is used. |
| | """ |
| | ), |
| | ] = _Unset, |
| | |
| | |
| | validation_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Whitelist' validation step. The parameter field will be the single one |
| | allowed by the alias or set of aliases defined. |
| | """ |
| | ), |
| | ] = None, |
| | serialization_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Blacklist' validation step. The vanilla parameter field will be the |
| | single one of the alias' or set of aliases' fields and all the other |
| | fields will be ignored at serialization time. |
| | """ |
| | ), |
| | ] = None, |
| | title: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable title. |
| | """ |
| | ), |
| | ] = None, |
| | description: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable description. |
| | """ |
| | ), |
| | ] = None, |
| | gt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than. If set, value must be greater than this. Only applicable to |
| | numbers. |
| | """ |
| | ), |
| | ] = None, |
| | ge: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than or equal. If set, value must be greater than or equal to |
| | this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | lt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than. If set, value must be less than this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | le: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than or equal. If set, value must be less than or equal to this. |
| | Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | min_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Minimum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | max_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Maximum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | pattern: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | ] = None, |
| | regex: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | deprecated( |
| | "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." |
| | ), |
| | ] = None, |
| | discriminator: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | Parameter field name for discriminating the type in a tagged union. |
| | """ |
| | ), |
| | ] = None, |
| | strict: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | If `True`, strict validation is applied to the field. |
| | """ |
| | ), |
| | ] = _Unset, |
| | multiple_of: Annotated[ |
| | Union[float, None], |
| | Doc( |
| | """ |
| | Value must be a multiple of this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | allow_inf_nan: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | Allow `inf`, `-inf`, `nan`. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | max_digits: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of allow digits for strings. |
| | """ |
| | ), |
| | ] = _Unset, |
| | decimal_places: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of decimal places allowed for numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | examples: Annotated[ |
| | Optional[List[Any]], |
| | Doc( |
| | """ |
| | Example values for this field. |
| | """ |
| | ), |
| | ] = None, |
| | example: Annotated[ |
| | Optional[Any], |
| | deprecated( |
| | "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " |
| | "although still supported. Use examples instead." |
| | ), |
| | ] = _Unset, |
| | openapi_examples: Annotated[ |
| | Optional[Dict[str, Example]], |
| | Doc( |
| | """ |
| | OpenAPI-specific examples. |
| | |
| | It will be added to the generated OpenAPI (e.g. visible at `/docs`). |
| | |
| | Swagger UI (that provides the `/docs` interface) has better support for the |
| | OpenAPI-specific examples than the JSON Schema `examples`, that's the main |
| | use case for this. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). |
| | """ |
| | ), |
| | ] = None, |
| | deprecated: Annotated[ |
| | Optional[bool], |
| | Doc( |
| | """ |
| | Mark this parameter field as deprecated. |
| | |
| | It will affect the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = None, |
| | include_in_schema: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | To include (or not) this parameter field in the generated OpenAPI. |
| | You probably don't need it, but it's available. |
| | |
| | This affects the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = True, |
| | json_schema_extra: Annotated[ |
| | Union[Dict[str, Any], None], |
| | Doc( |
| | """ |
| | Any additional JSON schema data. |
| | """ |
| | ), |
| | ] = None, |
| | **extra: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Include extra fields used by the JSON Schema. |
| | """ |
| | ), |
| | deprecated( |
| | """ |
| | The `extra` kwargs is deprecated. Use `json_schema_extra` instead. |
| | """ |
| | ), |
| | ], |
| | ) -> Any: |
| | return params.Cookie( |
| | default=default, |
| | default_factory=default_factory, |
| | alias=alias, |
| | alias_priority=alias_priority, |
| | validation_alias=validation_alias, |
| | serialization_alias=serialization_alias, |
| | title=title, |
| | description=description, |
| | gt=gt, |
| | ge=ge, |
| | lt=lt, |
| | le=le, |
| | min_length=min_length, |
| | max_length=max_length, |
| | pattern=pattern, |
| | regex=regex, |
| | discriminator=discriminator, |
| | strict=strict, |
| | multiple_of=multiple_of, |
| | allow_inf_nan=allow_inf_nan, |
| | max_digits=max_digits, |
| | decimal_places=decimal_places, |
| | example=example, |
| | examples=examples, |
| | openapi_examples=openapi_examples, |
| | deprecated=deprecated, |
| | include_in_schema=include_in_schema, |
| | json_schema_extra=json_schema_extra, |
| | **extra, |
| | ) |
| |
|
| |
|
| | def Body( |
| | default: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Default value if the parameter field is not set. |
| | """ |
| | ), |
| | ] = Undefined, |
| | *, |
| | default_factory: Annotated[ |
| | Union[Callable[[], Any], None], |
| | Doc( |
| | """ |
| | A callable to generate the default value. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = _Unset, |
| | embed: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | When `embed` is `True`, the parameter will be expected in a JSON body as a |
| | key instead of being the JSON body itself. |
| | |
| | This happens automatically when more than one `Body` parameter is declared. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Body - Multiple Parameters](https://fastapi.tiangolo.com/tutorial/body-multiple-params/#embed-a-single-body-parameter). |
| | """ |
| | ), |
| | ] = False, |
| | media_type: Annotated[ |
| | str, |
| | Doc( |
| | """ |
| | The media type of this parameter field. Changing it would affect the |
| | generated OpenAPI, but currently it doesn't affect the parsing of the data. |
| | """ |
| | ), |
| | ] = "application/json", |
| | alias: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | An alternative name for the parameter field. |
| | |
| | This will be used to extract the data and for the generated OpenAPI. |
| | It is particularly useful when you can't use the name you want because it |
| | is a Python reserved keyword or similar. |
| | """ |
| | ), |
| | ] = None, |
| | alias_priority: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Priority of the alias. This affects whether an alias generator is used. |
| | """ |
| | ), |
| | ] = _Unset, |
| | |
| | |
| | validation_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Whitelist' validation step. The parameter field will be the single one |
| | allowed by the alias or set of aliases defined. |
| | """ |
| | ), |
| | ] = None, |
| | serialization_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Blacklist' validation step. The vanilla parameter field will be the |
| | single one of the alias' or set of aliases' fields and all the other |
| | fields will be ignored at serialization time. |
| | """ |
| | ), |
| | ] = None, |
| | title: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable title. |
| | """ |
| | ), |
| | ] = None, |
| | description: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable description. |
| | """ |
| | ), |
| | ] = None, |
| | gt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than. If set, value must be greater than this. Only applicable to |
| | numbers. |
| | """ |
| | ), |
| | ] = None, |
| | ge: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than or equal. If set, value must be greater than or equal to |
| | this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | lt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than. If set, value must be less than this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | le: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than or equal. If set, value must be less than or equal to this. |
| | Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | min_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Minimum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | max_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Maximum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | pattern: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | ] = None, |
| | regex: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | deprecated( |
| | "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." |
| | ), |
| | ] = None, |
| | discriminator: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | Parameter field name for discriminating the type in a tagged union. |
| | """ |
| | ), |
| | ] = None, |
| | strict: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | If `True`, strict validation is applied to the field. |
| | """ |
| | ), |
| | ] = _Unset, |
| | multiple_of: Annotated[ |
| | Union[float, None], |
| | Doc( |
| | """ |
| | Value must be a multiple of this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | allow_inf_nan: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | Allow `inf`, `-inf`, `nan`. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | max_digits: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of allow digits for strings. |
| | """ |
| | ), |
| | ] = _Unset, |
| | decimal_places: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of decimal places allowed for numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | examples: Annotated[ |
| | Optional[List[Any]], |
| | Doc( |
| | """ |
| | Example values for this field. |
| | """ |
| | ), |
| | ] = None, |
| | example: Annotated[ |
| | Optional[Any], |
| | deprecated( |
| | "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " |
| | "although still supported. Use examples instead." |
| | ), |
| | ] = _Unset, |
| | openapi_examples: Annotated[ |
| | Optional[Dict[str, Example]], |
| | Doc( |
| | """ |
| | OpenAPI-specific examples. |
| | |
| | It will be added to the generated OpenAPI (e.g. visible at `/docs`). |
| | |
| | Swagger UI (that provides the `/docs` interface) has better support for the |
| | OpenAPI-specific examples than the JSON Schema `examples`, that's the main |
| | use case for this. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). |
| | """ |
| | ), |
| | ] = None, |
| | deprecated: Annotated[ |
| | Optional[bool], |
| | Doc( |
| | """ |
| | Mark this parameter field as deprecated. |
| | |
| | It will affect the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = None, |
| | include_in_schema: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | To include (or not) this parameter field in the generated OpenAPI. |
| | You probably don't need it, but it's available. |
| | |
| | This affects the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = True, |
| | json_schema_extra: Annotated[ |
| | Union[Dict[str, Any], None], |
| | Doc( |
| | """ |
| | Any additional JSON schema data. |
| | """ |
| | ), |
| | ] = None, |
| | **extra: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Include extra fields used by the JSON Schema. |
| | """ |
| | ), |
| | deprecated( |
| | """ |
| | The `extra` kwargs is deprecated. Use `json_schema_extra` instead. |
| | """ |
| | ), |
| | ], |
| | ) -> Any: |
| | return params.Body( |
| | default=default, |
| | default_factory=default_factory, |
| | embed=embed, |
| | media_type=media_type, |
| | alias=alias, |
| | alias_priority=alias_priority, |
| | validation_alias=validation_alias, |
| | serialization_alias=serialization_alias, |
| | title=title, |
| | description=description, |
| | gt=gt, |
| | ge=ge, |
| | lt=lt, |
| | le=le, |
| | min_length=min_length, |
| | max_length=max_length, |
| | pattern=pattern, |
| | regex=regex, |
| | discriminator=discriminator, |
| | strict=strict, |
| | multiple_of=multiple_of, |
| | allow_inf_nan=allow_inf_nan, |
| | max_digits=max_digits, |
| | decimal_places=decimal_places, |
| | example=example, |
| | examples=examples, |
| | openapi_examples=openapi_examples, |
| | deprecated=deprecated, |
| | include_in_schema=include_in_schema, |
| | json_schema_extra=json_schema_extra, |
| | **extra, |
| | ) |
| |
|
| |
|
| | def Form( |
| | default: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Default value if the parameter field is not set. |
| | """ |
| | ), |
| | ] = Undefined, |
| | *, |
| | default_factory: Annotated[ |
| | Union[Callable[[], Any], None], |
| | Doc( |
| | """ |
| | A callable to generate the default value. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = _Unset, |
| | media_type: Annotated[ |
| | str, |
| | Doc( |
| | """ |
| | The media type of this parameter field. Changing it would affect the |
| | generated OpenAPI, but currently it doesn't affect the parsing of the data. |
| | """ |
| | ), |
| | ] = "application/x-www-form-urlencoded", |
| | alias: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | An alternative name for the parameter field. |
| | |
| | This will be used to extract the data and for the generated OpenAPI. |
| | It is particularly useful when you can't use the name you want because it |
| | is a Python reserved keyword or similar. |
| | """ |
| | ), |
| | ] = None, |
| | alias_priority: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Priority of the alias. This affects whether an alias generator is used. |
| | """ |
| | ), |
| | ] = _Unset, |
| | |
| | |
| | validation_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Whitelist' validation step. The parameter field will be the single one |
| | allowed by the alias or set of aliases defined. |
| | """ |
| | ), |
| | ] = None, |
| | serialization_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Blacklist' validation step. The vanilla parameter field will be the |
| | single one of the alias' or set of aliases' fields and all the other |
| | fields will be ignored at serialization time. |
| | """ |
| | ), |
| | ] = None, |
| | title: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable title. |
| | """ |
| | ), |
| | ] = None, |
| | description: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable description. |
| | """ |
| | ), |
| | ] = None, |
| | gt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than. If set, value must be greater than this. Only applicable to |
| | numbers. |
| | """ |
| | ), |
| | ] = None, |
| | ge: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than or equal. If set, value must be greater than or equal to |
| | this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | lt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than. If set, value must be less than this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | le: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than or equal. If set, value must be less than or equal to this. |
| | Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | min_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Minimum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | max_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Maximum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | pattern: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | ] = None, |
| | regex: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | deprecated( |
| | "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." |
| | ), |
| | ] = None, |
| | discriminator: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | Parameter field name for discriminating the type in a tagged union. |
| | """ |
| | ), |
| | ] = None, |
| | strict: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | If `True`, strict validation is applied to the field. |
| | """ |
| | ), |
| | ] = _Unset, |
| | multiple_of: Annotated[ |
| | Union[float, None], |
| | Doc( |
| | """ |
| | Value must be a multiple of this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | allow_inf_nan: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | Allow `inf`, `-inf`, `nan`. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | max_digits: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of allow digits for strings. |
| | """ |
| | ), |
| | ] = _Unset, |
| | decimal_places: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of decimal places allowed for numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | examples: Annotated[ |
| | Optional[List[Any]], |
| | Doc( |
| | """ |
| | Example values for this field. |
| | """ |
| | ), |
| | ] = None, |
| | example: Annotated[ |
| | Optional[Any], |
| | deprecated( |
| | "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " |
| | "although still supported. Use examples instead." |
| | ), |
| | ] = _Unset, |
| | openapi_examples: Annotated[ |
| | Optional[Dict[str, Example]], |
| | Doc( |
| | """ |
| | OpenAPI-specific examples. |
| | |
| | It will be added to the generated OpenAPI (e.g. visible at `/docs`). |
| | |
| | Swagger UI (that provides the `/docs` interface) has better support for the |
| | OpenAPI-specific examples than the JSON Schema `examples`, that's the main |
| | use case for this. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). |
| | """ |
| | ), |
| | ] = None, |
| | deprecated: Annotated[ |
| | Optional[bool], |
| | Doc( |
| | """ |
| | Mark this parameter field as deprecated. |
| | |
| | It will affect the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = None, |
| | include_in_schema: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | To include (or not) this parameter field in the generated OpenAPI. |
| | You probably don't need it, but it's available. |
| | |
| | This affects the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = True, |
| | json_schema_extra: Annotated[ |
| | Union[Dict[str, Any], None], |
| | Doc( |
| | """ |
| | Any additional JSON schema data. |
| | """ |
| | ), |
| | ] = None, |
| | **extra: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Include extra fields used by the JSON Schema. |
| | """ |
| | ), |
| | deprecated( |
| | """ |
| | The `extra` kwargs is deprecated. Use `json_schema_extra` instead. |
| | """ |
| | ), |
| | ], |
| | ) -> Any: |
| | return params.Form( |
| | default=default, |
| | default_factory=default_factory, |
| | media_type=media_type, |
| | alias=alias, |
| | alias_priority=alias_priority, |
| | validation_alias=validation_alias, |
| | serialization_alias=serialization_alias, |
| | title=title, |
| | description=description, |
| | gt=gt, |
| | ge=ge, |
| | lt=lt, |
| | le=le, |
| | min_length=min_length, |
| | max_length=max_length, |
| | pattern=pattern, |
| | regex=regex, |
| | discriminator=discriminator, |
| | strict=strict, |
| | multiple_of=multiple_of, |
| | allow_inf_nan=allow_inf_nan, |
| | max_digits=max_digits, |
| | decimal_places=decimal_places, |
| | example=example, |
| | examples=examples, |
| | openapi_examples=openapi_examples, |
| | deprecated=deprecated, |
| | include_in_schema=include_in_schema, |
| | json_schema_extra=json_schema_extra, |
| | **extra, |
| | ) |
| |
|
| |
|
| | def File( |
| | default: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Default value if the parameter field is not set. |
| | """ |
| | ), |
| | ] = Undefined, |
| | *, |
| | default_factory: Annotated[ |
| | Union[Callable[[], Any], None], |
| | Doc( |
| | """ |
| | A callable to generate the default value. |
| | |
| | This doesn't affect `Path` parameters as the value is always required. |
| | The parameter is available only for compatibility. |
| | """ |
| | ), |
| | ] = _Unset, |
| | media_type: Annotated[ |
| | str, |
| | Doc( |
| | """ |
| | The media type of this parameter field. Changing it would affect the |
| | generated OpenAPI, but currently it doesn't affect the parsing of the data. |
| | """ |
| | ), |
| | ] = "multipart/form-data", |
| | alias: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | An alternative name for the parameter field. |
| | |
| | This will be used to extract the data and for the generated OpenAPI. |
| | It is particularly useful when you can't use the name you want because it |
| | is a Python reserved keyword or similar. |
| | """ |
| | ), |
| | ] = None, |
| | alias_priority: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Priority of the alias. This affects whether an alias generator is used. |
| | """ |
| | ), |
| | ] = _Unset, |
| | |
| | |
| | validation_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Whitelist' validation step. The parameter field will be the single one |
| | allowed by the alias or set of aliases defined. |
| | """ |
| | ), |
| | ] = None, |
| | serialization_alias: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | 'Blacklist' validation step. The vanilla parameter field will be the |
| | single one of the alias' or set of aliases' fields and all the other |
| | fields will be ignored at serialization time. |
| | """ |
| | ), |
| | ] = None, |
| | title: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable title. |
| | """ |
| | ), |
| | ] = None, |
| | description: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | Human-readable description. |
| | """ |
| | ), |
| | ] = None, |
| | gt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than. If set, value must be greater than this. Only applicable to |
| | numbers. |
| | """ |
| | ), |
| | ] = None, |
| | ge: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Greater than or equal. If set, value must be greater than or equal to |
| | this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | lt: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than. If set, value must be less than this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | le: Annotated[ |
| | Optional[float], |
| | Doc( |
| | """ |
| | Less than or equal. If set, value must be less than or equal to this. |
| | Only applicable to numbers. |
| | """ |
| | ), |
| | ] = None, |
| | min_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Minimum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | max_length: Annotated[ |
| | Optional[int], |
| | Doc( |
| | """ |
| | Maximum length for strings. |
| | """ |
| | ), |
| | ] = None, |
| | pattern: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | ] = None, |
| | regex: Annotated[ |
| | Optional[str], |
| | Doc( |
| | """ |
| | RegEx pattern for strings. |
| | """ |
| | ), |
| | deprecated( |
| | "Deprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead." |
| | ), |
| | ] = None, |
| | discriminator: Annotated[ |
| | Union[str, None], |
| | Doc( |
| | """ |
| | Parameter field name for discriminating the type in a tagged union. |
| | """ |
| | ), |
| | ] = None, |
| | strict: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | If `True`, strict validation is applied to the field. |
| | """ |
| | ), |
| | ] = _Unset, |
| | multiple_of: Annotated[ |
| | Union[float, None], |
| | Doc( |
| | """ |
| | Value must be a multiple of this. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | allow_inf_nan: Annotated[ |
| | Union[bool, None], |
| | Doc( |
| | """ |
| | Allow `inf`, `-inf`, `nan`. Only applicable to numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | max_digits: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of allow digits for strings. |
| | """ |
| | ), |
| | ] = _Unset, |
| | decimal_places: Annotated[ |
| | Union[int, None], |
| | Doc( |
| | """ |
| | Maximum number of decimal places allowed for numbers. |
| | """ |
| | ), |
| | ] = _Unset, |
| | examples: Annotated[ |
| | Optional[List[Any]], |
| | Doc( |
| | """ |
| | Example values for this field. |
| | """ |
| | ), |
| | ] = None, |
| | example: Annotated[ |
| | Optional[Any], |
| | deprecated( |
| | "Deprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, " |
| | "although still supported. Use examples instead." |
| | ), |
| | ] = _Unset, |
| | openapi_examples: Annotated[ |
| | Optional[Dict[str, Example]], |
| | Doc( |
| | """ |
| | OpenAPI-specific examples. |
| | |
| | It will be added to the generated OpenAPI (e.g. visible at `/docs`). |
| | |
| | Swagger UI (that provides the `/docs` interface) has better support for the |
| | OpenAPI-specific examples than the JSON Schema `examples`, that's the main |
| | use case for this. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#using-the-openapi_examples-parameter). |
| | """ |
| | ), |
| | ] = None, |
| | deprecated: Annotated[ |
| | Optional[bool], |
| | Doc( |
| | """ |
| | Mark this parameter field as deprecated. |
| | |
| | It will affect the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = None, |
| | include_in_schema: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | To include (or not) this parameter field in the generated OpenAPI. |
| | You probably don't need it, but it's available. |
| | |
| | This affects the generated OpenAPI (e.g. visible at `/docs`). |
| | """ |
| | ), |
| | ] = True, |
| | json_schema_extra: Annotated[ |
| | Union[Dict[str, Any], None], |
| | Doc( |
| | """ |
| | Any additional JSON schema data. |
| | """ |
| | ), |
| | ] = None, |
| | **extra: Annotated[ |
| | Any, |
| | Doc( |
| | """ |
| | Include extra fields used by the JSON Schema. |
| | """ |
| | ), |
| | deprecated( |
| | """ |
| | The `extra` kwargs is deprecated. Use `json_schema_extra` instead. |
| | """ |
| | ), |
| | ], |
| | ) -> Any: |
| | return params.File( |
| | default=default, |
| | default_factory=default_factory, |
| | media_type=media_type, |
| | alias=alias, |
| | alias_priority=alias_priority, |
| | validation_alias=validation_alias, |
| | serialization_alias=serialization_alias, |
| | title=title, |
| | description=description, |
| | gt=gt, |
| | ge=ge, |
| | lt=lt, |
| | le=le, |
| | min_length=min_length, |
| | max_length=max_length, |
| | pattern=pattern, |
| | regex=regex, |
| | discriminator=discriminator, |
| | strict=strict, |
| | multiple_of=multiple_of, |
| | allow_inf_nan=allow_inf_nan, |
| | max_digits=max_digits, |
| | decimal_places=decimal_places, |
| | example=example, |
| | examples=examples, |
| | openapi_examples=openapi_examples, |
| | deprecated=deprecated, |
| | include_in_schema=include_in_schema, |
| | json_schema_extra=json_schema_extra, |
| | **extra, |
| | ) |
| |
|
| |
|
| | def Depends( |
| | dependency: Annotated[ |
| | Optional[Callable[..., Any]], |
| | Doc( |
| | """ |
| | A "dependable" callable (like a function). |
| | |
| | Don't call it directly, FastAPI will call it for you, just pass the object |
| | directly. |
| | """ |
| | ), |
| | ] = None, |
| | *, |
| | use_cache: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | By default, after a dependency is called the first time in a request, if |
| | the dependency is declared again for the rest of the request (for example |
| | if the dependency is needed by several dependencies), the value will be |
| | re-used for the rest of the request. |
| | |
| | Set `use_cache` to `False` to disable this behavior and ensure the |
| | dependency is called again (if declared more than once) in the same request. |
| | """ |
| | ), |
| | ] = True, |
| | ) -> Any: |
| | """ |
| | Declare a FastAPI dependency. |
| | |
| | It takes a single "dependable" callable (like a function). |
| | |
| | Don't call it directly, FastAPI will call it for you. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Dependencies](https://fastapi.tiangolo.com/tutorial/dependencies/). |
| | |
| | **Example** |
| | |
| | ```python |
| | from typing import Annotated |
| | |
| | from fastapi import Depends, FastAPI |
| | |
| | app = FastAPI() |
| | |
| | |
| | async def common_parameters(q: str | None = None, skip: int = 0, limit: int = 100): |
| | return {"q": q, "skip": skip, "limit": limit} |
| | |
| | |
| | @app.get("/items/") |
| | async def read_items(commons: Annotated[dict, Depends(common_parameters)]): |
| | return commons |
| | ``` |
| | """ |
| | return params.Depends(dependency=dependency, use_cache=use_cache) |
| |
|
| |
|
| | def Security( |
| | dependency: Annotated[ |
| | Optional[Callable[..., Any]], |
| | Doc( |
| | """ |
| | A "dependable" callable (like a function). |
| | |
| | Don't call it directly, FastAPI will call it for you, just pass the object |
| | directly. |
| | """ |
| | ), |
| | ] = None, |
| | *, |
| | scopes: Annotated[ |
| | Optional[Sequence[str]], |
| | Doc( |
| | """ |
| | OAuth2 scopes required for the *path operation* that uses this Security |
| | dependency. |
| | |
| | The term "scope" comes from the OAuth2 specification, it seems to be |
| | intentionaly vague and interpretable. It normally refers to permissions, |
| | in cases to roles. |
| | |
| | These scopes are integrated with OpenAPI (and the API docs at `/docs`). |
| | So they are visible in the OpenAPI specification. |
| | ) |
| | """ |
| | ), |
| | ] = None, |
| | use_cache: Annotated[ |
| | bool, |
| | Doc( |
| | """ |
| | By default, after a dependency is called the first time in a request, if |
| | the dependency is declared again for the rest of the request (for example |
| | if the dependency is needed by several dependencies), the value will be |
| | re-used for the rest of the request. |
| | |
| | Set `use_cache` to `False` to disable this behavior and ensure the |
| | dependency is called again (if declared more than once) in the same request. |
| | """ |
| | ), |
| | ] = True, |
| | ) -> Any: |
| | """ |
| | Declare a FastAPI Security dependency. |
| | |
| | The only difference with a regular dependency is that it can declare OAuth2 |
| | scopes that will be integrated with OpenAPI and the automatic UI docs (by default |
| | at `/docs`). |
| | |
| | It takes a single "dependable" callable (like a function). |
| | |
| | Don't call it directly, FastAPI will call it for you. |
| | |
| | Read more about it in the |
| | [FastAPI docs for Security](https://fastapi.tiangolo.com/tutorial/security/) and |
| | in the |
| | [FastAPI docs for OAuth2 scopes](https://fastapi.tiangolo.com/advanced/security/oauth2-scopes/). |
| | |
| | **Example** |
| | |
| | ```python |
| | from typing import Annotated |
| | |
| | from fastapi import Depends, FastAPI |
| | |
| | from .db import User |
| | from .security import get_current_active_user |
| | |
| | app = FastAPI() |
| | |
| | @app.get("/users/me/items/") |
| | async def read_own_items( |
| | current_user: Annotated[User, Security(get_current_active_user, scopes=["items"])] |
| | ): |
| | return [{"item_id": "Foo", "owner": current_user.username}] |
| | ``` |
| | """ |
| | return params.Security(dependency=dependency, scopes=scopes, use_cache=use_cache) |
| |
|