mirror of
https://github.com/fastapi/fastapi.git
synced 2026-03-04 06:58:42 -05:00
✨ Add reference (code API) docs with PEP 727, add subclass with custom docstrings for BackgroundTasks, refactor docs structure (#10392)
* ➕ Add mkdocstrings and griffe-typingdoc to dependencies * 🔧 Add mkdocstrings configs to MkDocs * 📝 Add first WIP reference page * ⬆️ Upgrade typing-extensions to the minimum version including Doc() * 📝 Add docs to FastAPI parameters * 📝 Add docstrings for OpenAPI docs utils * 📝 Add docstrings for security utils * 📝 Add docstrings for UploadFile * 📝 Update docstrings in FastAPI class * 📝 Add docstrings for path operation methods * 📝 Add docstring for jsonable_encoder * 📝 Add docstrings for exceptions * 📝 Add docstsrings for parameter functions * 📝 Add docstrings for responses * 📝 Add docstrings for APIRouter * ♻️ Sub-class BackgroundTasks to document it with docstrings * 📝 Update usage of background tasks in dependencies * ✅ Update tests with new deprecation warnings * 📝 Add new reference docs * 🔧 Update MkDocs with new reference docs * ✅ Update pytest fixture, deprecation is raised only once * 🎨 Update format for types in exceptions.py * ♻️ Update annotations in BackgroundTask, `Annotated` can't take ParamSpec's P.args or P.kwargs * ✏️ Fix typos caught by @pawamoy * 🔧 Update and fix MkDocstrings configs from @pawamoy tips * 📝 Update reference docs * ✏️ Fix typos found by @pawamoy * ➕ Add HTTPX as a dependency for docs, for the TestClient * 🔧 Update MkDocs config, rename websockets reference * 🔇 Add type-ignores for Doc as the stubs haven't been released for mypy * 🔥 Remove duplicated deprecated notice * 🔇 Remove typing error for unreleased stub in openapi/docs.py * ✅ Add tests for UploadFile for coverage * ⬆️ Upgrade griffe-typingdoc==0.2.2 * 📝 Refactor docs structure * 🔨 Update README generation with new index frontmatter and style * 🔨 Update generation of languages, remove from top menu, keep in lang menu * 📝 Add OpenAPI Pydantic models * 🔨 Update docs script to not translate Reference and Release Notes * 🔧 Add reference for OpenAPI models * 🔧 Update MkDocs config for mkdocstrings insiders * 👷 Install mkdocstring insiders in CI for docs * 🐛 Fix MkDocstrings insiders install URL * ➕ Move dependencies shared by docs and tests to its own requirements file * 👷 Update cache keys for test and docs dependencies * 📝 Remove no longer needed __init__ placeholder docstrings * 📝 Move docstring for APIRouter to the class level (not __init__ level) * 🔥 Remove no longer needed dummy placeholder __init__ docstring
This commit is contained in:
committed by
GitHub
parent
3fa44aabe3
commit
05ca41cfd1
3
docs/en/docs/about/index.md
Normal file
3
docs/en/docs/about/index.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# About
|
||||
|
||||
About FastAPI, its design, inspiration and more. 🤓
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
hide:
|
||||
- navigation
|
||||
---
|
||||
|
||||
# FastAPI People
|
||||
|
||||
FastAPI has an amazing community that welcomes people from all backgrounds.
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
hide:
|
||||
- navigation
|
||||
---
|
||||
|
||||
# Features
|
||||
|
||||
## FastAPI features
|
||||
|
||||
3
docs/en/docs/help/index.md
Normal file
3
docs/en/docs/help/index.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Help
|
||||
|
||||
Help and get help, contribute, get involved. 🤝
|
||||
@@ -1,3 +1,12 @@
|
||||
---
|
||||
hide:
|
||||
- navigation
|
||||
---
|
||||
|
||||
<style>
|
||||
.md-content .md-typeset h1 { display: none; }
|
||||
</style>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://fastapi.tiangolo.com"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
|
||||
</p>
|
||||
|
||||
5
docs/en/docs/learn/index.md
Normal file
5
docs/en/docs/learn/index.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Learn
|
||||
|
||||
Here are the introductory sections and the tutorials to learn **FastAPI**.
|
||||
|
||||
You could consider this a **book**, a **course**, the **official** and recommended way to learn FastAPI. 😎
|
||||
25
docs/en/docs/reference/apirouter.md
Normal file
25
docs/en/docs/reference/apirouter.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# `APIRouter` class
|
||||
|
||||
Here's the reference information for the `APIRouter` class, with all its parameters,
|
||||
attributes and methods.
|
||||
|
||||
You can import the `APIRouter` class directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import APIRouter
|
||||
```
|
||||
|
||||
::: fastapi.APIRouter
|
||||
options:
|
||||
members:
|
||||
- websocket
|
||||
- include_router
|
||||
- get
|
||||
- put
|
||||
- post
|
||||
- delete
|
||||
- options
|
||||
- head
|
||||
- patch
|
||||
- trace
|
||||
- on_event
|
||||
13
docs/en/docs/reference/background.md
Normal file
13
docs/en/docs/reference/background.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Background Tasks - `BackgroundTasks`
|
||||
|
||||
You can declare a parameter in a *path operation function* or dependency function
|
||||
with the type `BackgroundTasks`, and then you can use it to schedule the execution
|
||||
of background tasks after the response is sent.
|
||||
|
||||
You can import it directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import BackgroundTasks
|
||||
```
|
||||
|
||||
::: fastapi.BackgroundTasks
|
||||
32
docs/en/docs/reference/dependencies.md
Normal file
32
docs/en/docs/reference/dependencies.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Dependencies - `Depends()` and `Security()`
|
||||
|
||||
## `Depends()`
|
||||
|
||||
Dependencies are handled mainly with the special function `Depends()` that takes a
|
||||
callable.
|
||||
|
||||
Here is the reference for it and its parameters.
|
||||
|
||||
You can import it directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import Depends
|
||||
```
|
||||
|
||||
::: fastapi.Depends
|
||||
|
||||
## `Security()`
|
||||
|
||||
For many scenarios, you can handle security (authorization, authentication, etc.) with
|
||||
dependendencies, using `Depends()`.
|
||||
|
||||
But when you want to also declare OAuth2 scopes, you can use `Security()` instead of
|
||||
`Depends()`.
|
||||
|
||||
You can import `Security()` directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import Security
|
||||
```
|
||||
|
||||
::: fastapi.Security
|
||||
3
docs/en/docs/reference/encoders.md
Normal file
3
docs/en/docs/reference/encoders.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Encoders - `jsonable_encoder`
|
||||
|
||||
::: fastapi.encoders.jsonable_encoder
|
||||
22
docs/en/docs/reference/exceptions.md
Normal file
22
docs/en/docs/reference/exceptions.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Exceptions - `HTTPException` and `WebSocketException`
|
||||
|
||||
These are the exceptions that you can raise to show errors to the client.
|
||||
|
||||
When you raise an exception, as would happen with normal Python, the rest of the
|
||||
excecution is aborted. This way you can raise these exceptions from anywhere in the
|
||||
code to abort a request and show the error to the client.
|
||||
|
||||
You can use:
|
||||
|
||||
* `HTTPException`
|
||||
* `WebSocketException`
|
||||
|
||||
These exceptions can be imported directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import HTTPException, WebSocketException
|
||||
```
|
||||
|
||||
::: fastapi.HTTPException
|
||||
|
||||
::: fastapi.WebSocketException
|
||||
32
docs/en/docs/reference/fastapi.md
Normal file
32
docs/en/docs/reference/fastapi.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# `FastAPI` class
|
||||
|
||||
Here's the reference information for the `FastAPI` class, with all its parameters,
|
||||
attributes and methods.
|
||||
|
||||
You can import the `FastAPI` class directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import FastAPI
|
||||
```
|
||||
|
||||
::: fastapi.FastAPI
|
||||
options:
|
||||
members:
|
||||
- openapi_version
|
||||
- webhooks
|
||||
- state
|
||||
- dependency_overrides
|
||||
- openapi
|
||||
- websocket
|
||||
- include_router
|
||||
- get
|
||||
- put
|
||||
- post
|
||||
- delete
|
||||
- options
|
||||
- head
|
||||
- patch
|
||||
- trace
|
||||
- on_event
|
||||
- middleware
|
||||
- exception_handler
|
||||
13
docs/en/docs/reference/httpconnection.md
Normal file
13
docs/en/docs/reference/httpconnection.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# `HTTPConnection` class
|
||||
|
||||
When you want to define dependencies that should be compatible with both HTTP and
|
||||
WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a
|
||||
`Request` or a `WebSocket`.
|
||||
|
||||
You can import it from `fastapi.requests`:
|
||||
|
||||
```python
|
||||
from fastapi.requests import HTTPConnection
|
||||
```
|
||||
|
||||
::: fastapi.requests.HTTPConnection
|
||||
7
docs/en/docs/reference/index.md
Normal file
7
docs/en/docs/reference/index.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Reference - Code API
|
||||
|
||||
Here's the reference or code API, the classes, functions, parameters, attributes, and
|
||||
all the FastAPI parts you can use in you applications.
|
||||
|
||||
If you want to **learn FastAPI** you are much better off reading the
|
||||
[FastAPI Tutorial](https://fastapi.tiangolo.com/tutorial/).
|
||||
46
docs/en/docs/reference/middleware.md
Normal file
46
docs/en/docs/reference/middleware.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Middleware
|
||||
|
||||
There are several middlewares available provided by Starlette directly.
|
||||
|
||||
Read more about them in the
|
||||
[FastAPI docs for Middleware](https://fastapi.tiangolo.com/advanced/middleware/).
|
||||
|
||||
::: fastapi.middleware.cors.CORSMiddleware
|
||||
|
||||
It can be imported from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
```
|
||||
|
||||
::: fastapi.middleware.gzip.GZipMiddleware
|
||||
|
||||
It can be imported from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi.middleware.gzip import GZipMiddleware
|
||||
```
|
||||
|
||||
::: fastapi.middleware.httpsredirect.HTTPSRedirectMiddleware
|
||||
|
||||
It can be imported from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware
|
||||
```
|
||||
|
||||
::: fastapi.middleware.trustedhost.TrustedHostMiddleware
|
||||
|
||||
It can be imported from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi.middleware.trustedhost import TrustedHostMiddleware
|
||||
```
|
||||
|
||||
::: fastapi.middleware.wsgi.WSGIMiddleware
|
||||
|
||||
It can be imported from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi.middleware.wsgi import WSGIMiddleware
|
||||
```
|
||||
11
docs/en/docs/reference/openapi/docs.md
Normal file
11
docs/en/docs/reference/openapi/docs.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# OpenAPI `docs`
|
||||
|
||||
Utilities to handle OpenAPI automatic UI documentation, including Swagger UI (by default at `/docs`) and ReDoc (by default at `/redoc`).
|
||||
|
||||
::: fastapi.openapi.docs.get_swagger_ui_html
|
||||
|
||||
::: fastapi.openapi.docs.get_redoc_html
|
||||
|
||||
::: fastapi.openapi.docs.get_swagger_ui_oauth2_redirect_html
|
||||
|
||||
::: fastapi.openapi.docs.swagger_ui_default_parameters
|
||||
5
docs/en/docs/reference/openapi/index.md
Normal file
5
docs/en/docs/reference/openapi/index.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# OpenAPI
|
||||
|
||||
There are several utilities to handle OpenAPI.
|
||||
|
||||
You normally don't need to use them unless you have a specific advanced use case that requires it.
|
||||
5
docs/en/docs/reference/openapi/models.md
Normal file
5
docs/en/docs/reference/openapi/models.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# OpenAPI `models`
|
||||
|
||||
OpenAPI Pydantic models used to generate and validate the generated OpenAPI.
|
||||
|
||||
::: fastapi.openapi.models
|
||||
36
docs/en/docs/reference/parameters.md
Normal file
36
docs/en/docs/reference/parameters.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Request Parameters
|
||||
|
||||
Here's the reference information for the request parameters.
|
||||
|
||||
These are the special functions that you can put in *path operation function*
|
||||
parameters or dependency functions with `Annotated` to get data from the request.
|
||||
|
||||
It includes:
|
||||
|
||||
* `Query()`
|
||||
* `Path()`
|
||||
* `Body()`
|
||||
* `Cookie()`
|
||||
* `Header()`
|
||||
* `Form()`
|
||||
* `File()`
|
||||
|
||||
You can import them all directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import Body, Cookie, File, Form, Header, Path, Query
|
||||
```
|
||||
|
||||
::: fastapi.Query
|
||||
|
||||
::: fastapi.Path
|
||||
|
||||
::: fastapi.Body
|
||||
|
||||
::: fastapi.Cookie
|
||||
|
||||
::: fastapi.Header
|
||||
|
||||
::: fastapi.Form
|
||||
|
||||
::: fastapi.File
|
||||
18
docs/en/docs/reference/request.md
Normal file
18
docs/en/docs/reference/request.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# `Request` class
|
||||
|
||||
You can declare a parameter in a *path operation function* or dependency to be of type
|
||||
`Request` and then you can access the raw request object directly, without any
|
||||
validation, etc.
|
||||
|
||||
You can import it directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import Request
|
||||
```
|
||||
|
||||
!!! tip
|
||||
When you want to define dependencies that should be compatible with both HTTP and
|
||||
WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a
|
||||
`Request` or a `WebSocket`.
|
||||
|
||||
::: fastapi.Request
|
||||
15
docs/en/docs/reference/response.md
Normal file
15
docs/en/docs/reference/response.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# `Response` class
|
||||
|
||||
You can declare a parameter in a *path operation function* or dependency to be of type
|
||||
`Response` and then you can set data for the response like headers or cookies.
|
||||
|
||||
You can also use it directly to create an instance of it and return it from your *path
|
||||
operations*.
|
||||
|
||||
You can import it directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import Response
|
||||
```
|
||||
|
||||
::: fastapi.Response
|
||||
166
docs/en/docs/reference/responses.md
Normal file
166
docs/en/docs/reference/responses.md
Normal file
@@ -0,0 +1,166 @@
|
||||
# Custom Response Classes - File, HTML, Redirect, Streaming, etc.
|
||||
|
||||
There are several custom response classes you can use to create an instance and return
|
||||
them directly from your *path operations*.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/).
|
||||
|
||||
You can import them directly from `fastapi.responses`:
|
||||
|
||||
```python
|
||||
from fastapi.responses import (
|
||||
FileResponse,
|
||||
HTMLResponse,
|
||||
JSONResponse,
|
||||
ORJSONResponse,
|
||||
PlainTextResponse,
|
||||
RedirectResponse,
|
||||
Response,
|
||||
StreamingResponse,
|
||||
UJSONResponse,
|
||||
)
|
||||
```
|
||||
|
||||
## FastAPI Responses
|
||||
|
||||
There are a couple of custom FastAPI response classes, you can use them to optimize JSON performance.
|
||||
|
||||
::: fastapi.responses.UJSONResponse
|
||||
options:
|
||||
members:
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
::: fastapi.responses.ORJSONResponse
|
||||
options:
|
||||
members:
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
## Starlette Responses
|
||||
|
||||
::: fastapi.responses.FileResponse
|
||||
options:
|
||||
members:
|
||||
- chunk_size
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
::: fastapi.responses.HTMLResponse
|
||||
options:
|
||||
members:
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
::: fastapi.responses.JSONResponse
|
||||
options:
|
||||
members:
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
::: fastapi.responses.PlainTextResponse
|
||||
options:
|
||||
members:
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
::: fastapi.responses.RedirectResponse
|
||||
options:
|
||||
members:
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
::: fastapi.responses.Response
|
||||
options:
|
||||
members:
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
|
||||
::: fastapi.responses.StreamingResponse
|
||||
options:
|
||||
members:
|
||||
- body_iterator
|
||||
- charset
|
||||
- status_code
|
||||
- media_type
|
||||
- body
|
||||
- background
|
||||
- raw_headers
|
||||
- render
|
||||
- init_headers
|
||||
- headers
|
||||
- set_cookie
|
||||
- delete_cookie
|
||||
76
docs/en/docs/reference/security/index.md
Normal file
76
docs/en/docs/reference/security/index.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Security Tools
|
||||
|
||||
When you need to declare dependencies with OAuth2 scopes you use `Security()`.
|
||||
|
||||
But you still need to define what is the dependable, the callable that you pass as
|
||||
a parameter to `Depends()` or `Security()`.
|
||||
|
||||
There are multiple tools that you can use to create those dependables, and they get
|
||||
integrated into OpenAPI so they are shown in the automatic docs UI, they can be used
|
||||
by automatically generated clients and SDKs, etc.
|
||||
|
||||
You can import them from `fastapi.security`:
|
||||
|
||||
```python
|
||||
from fastapi.security import (
|
||||
APIKeyCookie,
|
||||
APIKeyHeader,
|
||||
APIKeyQuery,
|
||||
HTTPAuthorizationCredentials,
|
||||
HTTPBasic,
|
||||
HTTPBasicCredentials,
|
||||
HTTPBearer,
|
||||
HTTPDigest,
|
||||
OAuth2,
|
||||
OAuth2AuthorizationCodeBearer,
|
||||
OAuth2PasswordBearer,
|
||||
OAuth2PasswordRequestForm,
|
||||
OAuth2PasswordRequestFormStrict,
|
||||
OpenIdConnect,
|
||||
SecurityScopes,
|
||||
)
|
||||
```
|
||||
|
||||
## API Key Security Schemes
|
||||
|
||||
::: fastapi.security.APIKeyCookie
|
||||
|
||||
::: fastapi.security.APIKeyHeader
|
||||
|
||||
::: fastapi.security.APIKeyQuery
|
||||
|
||||
## HTTP Authentication Schemes
|
||||
|
||||
::: fastapi.security.HTTPBasic
|
||||
|
||||
::: fastapi.security.HTTPBearer
|
||||
|
||||
::: fastapi.security.HTTPDigest
|
||||
|
||||
## HTTP Credentials
|
||||
|
||||
::: fastapi.security.HTTPAuthorizationCredentials
|
||||
|
||||
::: fastapi.security.HTTPBasicCredentials
|
||||
|
||||
## OAuth2 Authentication
|
||||
|
||||
::: fastapi.security.OAuth2
|
||||
|
||||
::: fastapi.security.OAuth2AuthorizationCodeBearer
|
||||
|
||||
::: fastapi.security.OAuth2PasswordBearer
|
||||
|
||||
## OAuth2 Password Form
|
||||
|
||||
::: fastapi.security.OAuth2PasswordRequestForm
|
||||
|
||||
::: fastapi.security.OAuth2PasswordRequestFormStrict
|
||||
|
||||
## OAuth2 Security Scopes in Dependencies
|
||||
|
||||
::: fastapi.security.SecurityScopes
|
||||
|
||||
## OpenID Connect
|
||||
|
||||
::: fastapi.security.OpenIdConnect
|
||||
14
docs/en/docs/reference/staticfiles.md
Normal file
14
docs/en/docs/reference/staticfiles.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Static Files - `StaticFiles`
|
||||
|
||||
You can use the `StaticFiles` class to serve static files, like JavaScript, CSS, images, etc.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Static Files](https://fastapi.tiangolo.com/tutorial/static-files/).
|
||||
|
||||
You can import it directly from `fastapi.staticfiles`:
|
||||
|
||||
```python
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
```
|
||||
|
||||
::: fastapi.staticfiles.StaticFiles
|
||||
39
docs/en/docs/reference/status.md
Normal file
39
docs/en/docs/reference/status.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Status Codes
|
||||
|
||||
You can import the `status` module from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import status
|
||||
```
|
||||
|
||||
`status` is provided directly by Starlette.
|
||||
|
||||
It containes a group of named constants (variables) with integer status codes.
|
||||
|
||||
For example:
|
||||
|
||||
* 200: `status.HTTP_200_OK`
|
||||
* 403: `status.HTTP_403_FORBIDDEN`
|
||||
* etc.
|
||||
|
||||
It can be convenient to quickly access HTTP (and WebSocket) status codes in your app,
|
||||
using autocompletion for the name without having to remember the integer status codes
|
||||
by memory.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs about Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
|
||||
|
||||
## Example
|
||||
|
||||
```python
|
||||
from fastapi import FastAPI, status
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
|
||||
@app.get("/items/", status_code=status.HTTP_418_IM_A_TEAPOT)
|
||||
def read_items():
|
||||
return [{"name": "Plumbus"}, {"name": "Portal Gun"}]
|
||||
```
|
||||
|
||||
::: fastapi.status
|
||||
14
docs/en/docs/reference/templating.md
Normal file
14
docs/en/docs/reference/templating.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Templating - `Jinja2Templates`
|
||||
|
||||
You can use the `Jinja2Templates` class to render Jinja templates.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Templates](https://fastapi.tiangolo.com/advanced/templates/).
|
||||
|
||||
You can import it directly from `fastapi.templating`:
|
||||
|
||||
```python
|
||||
from fastapi.templating import Jinja2Templates
|
||||
```
|
||||
|
||||
::: fastapi.templating.Jinja2Templates
|
||||
14
docs/en/docs/reference/testclient.md
Normal file
14
docs/en/docs/reference/testclient.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Test Client - `TestClient`
|
||||
|
||||
You can use the `TestClient` class to test FastAPI applications without creating an actual HTTP and socket connection, just communicating directly with the FastAPI code.
|
||||
|
||||
Read more about it in the
|
||||
[FastAPI docs for Testing](https://fastapi.tiangolo.com/tutorial/testing/).
|
||||
|
||||
You can import it directly from `fastapi.testclient`:
|
||||
|
||||
```python
|
||||
from fastapi.testclient import TestClient
|
||||
```
|
||||
|
||||
::: fastapi.testclient.TestClient
|
||||
23
docs/en/docs/reference/uploadfile.md
Normal file
23
docs/en/docs/reference/uploadfile.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# `UploadFile` class
|
||||
|
||||
You can define *path operation function* parameters to be of the type `UploadFile`
|
||||
to receive files from the request.
|
||||
|
||||
You can import it directly from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import UploadFile
|
||||
```
|
||||
|
||||
::: fastapi.UploadFile
|
||||
options:
|
||||
members:
|
||||
- file
|
||||
- filename
|
||||
- size
|
||||
- headers
|
||||
- content_type
|
||||
- read
|
||||
- write
|
||||
- seek
|
||||
- close
|
||||
70
docs/en/docs/reference/websockets.md
Normal file
70
docs/en/docs/reference/websockets.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# WebSockets
|
||||
|
||||
When defining WebSockets, you normally declare a parameter of type `WebSocket` and
|
||||
with it you can read data from the client and send data to it.
|
||||
|
||||
It is provided directly by Starlette, but you can import it from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import WebSocket
|
||||
```
|
||||
|
||||
!!! tip
|
||||
When you want to define dependencies that should be compatible with both HTTP and
|
||||
WebSockets, you can define a parameter that takes an `HTTPConnection` instead of a
|
||||
`Request` or a `WebSocket`.
|
||||
|
||||
::: fastapi.WebSocket
|
||||
options:
|
||||
members:
|
||||
- scope
|
||||
- app
|
||||
- url
|
||||
- base_url
|
||||
- headers
|
||||
- query_params
|
||||
- path_params
|
||||
- cookies
|
||||
- client
|
||||
- state
|
||||
- url_for
|
||||
- client_state
|
||||
- application_state
|
||||
- receive
|
||||
- send
|
||||
- accept
|
||||
- receive_text
|
||||
- receive_bytes
|
||||
- receive_json
|
||||
- iter_text
|
||||
- iter_bytes
|
||||
- iter_json
|
||||
- send_text
|
||||
- send_bytes
|
||||
- send_json
|
||||
- close
|
||||
|
||||
When a client disconnects, a `WebSocketDisconnect` exception is raised, you can catch
|
||||
it.
|
||||
|
||||
You can import it directly form `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi import WebSocketDisconnect
|
||||
```
|
||||
|
||||
::: fastapi.WebSocketDisconnect
|
||||
|
||||
## WebSockets - additional classes
|
||||
|
||||
Additional classes for handling WebSockets.
|
||||
|
||||
Provided directly by Starlette, but you can import it from `fastapi`:
|
||||
|
||||
```python
|
||||
from fastapi.websockets import WebSocketDisconnect, WebSocketState
|
||||
```
|
||||
|
||||
::: fastapi.websockets.WebSocketDisconnect
|
||||
|
||||
::: fastapi.websockets.WebSocketState
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
hide:
|
||||
- navigation
|
||||
---
|
||||
|
||||
# Release Notes
|
||||
|
||||
## Latest Changes
|
||||
|
||||
3
docs/en/docs/resources/index.md
Normal file
3
docs/en/docs/resources/index.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Resources
|
||||
|
||||
Additional resources, external links, articles and more. ✈️
|
||||
@@ -30,6 +30,7 @@ theme:
|
||||
- content.code.annotate
|
||||
- content.code.copy
|
||||
- content.code.select
|
||||
- navigation.tabs
|
||||
icon:
|
||||
repo: fontawesome/brands/github-alt
|
||||
logo: img/icon-white.svg
|
||||
@@ -52,142 +53,174 @@ plugins:
|
||||
advanced/custom-request-and-route.md: how-to/custom-request-and-route.md
|
||||
advanced/conditional-openapi.md: how-to/conditional-openapi.md
|
||||
advanced/extending-openapi.md: how-to/extending-openapi.md
|
||||
mkdocstrings:
|
||||
handlers:
|
||||
python:
|
||||
options:
|
||||
extensions:
|
||||
- griffe_typingdoc
|
||||
show_root_heading: true
|
||||
show_if_no_docstring: true
|
||||
preload_modules: [httpx, starlette]
|
||||
inherited_members: true
|
||||
members_order: source
|
||||
separate_signature: true
|
||||
unwrap_annotated: true
|
||||
filters: ["!^_"]
|
||||
merge_init_into_class: true
|
||||
docstring_section_style: spacy
|
||||
signature_crossrefs: true
|
||||
show_symbol_type_heading: true
|
||||
show_symbol_type_toc: true
|
||||
nav:
|
||||
- FastAPI: index.md
|
||||
- Languages:
|
||||
- en: /
|
||||
- de: /de/
|
||||
- em: /em/
|
||||
- es: /es/
|
||||
- fa: /fa/
|
||||
- fr: /fr/
|
||||
- he: /he/
|
||||
- id: /id/
|
||||
- ja: /ja/
|
||||
- ko: /ko/
|
||||
- pl: /pl/
|
||||
- pt: /pt/
|
||||
- ru: /ru/
|
||||
- tr: /tr/
|
||||
- uk: /uk/
|
||||
- ur: /ur/
|
||||
- vi: /vi/
|
||||
- yo: /yo/
|
||||
- zh: /zh/
|
||||
- features.md
|
||||
- Learn:
|
||||
- learn/index.md
|
||||
- python-types.md
|
||||
- async.md
|
||||
- Tutorial - User Guide:
|
||||
- tutorial/index.md
|
||||
- tutorial/first-steps.md
|
||||
- tutorial/path-params.md
|
||||
- tutorial/query-params.md
|
||||
- tutorial/body.md
|
||||
- tutorial/query-params-str-validations.md
|
||||
- tutorial/path-params-numeric-validations.md
|
||||
- tutorial/body-multiple-params.md
|
||||
- tutorial/body-fields.md
|
||||
- tutorial/body-nested-models.md
|
||||
- tutorial/schema-extra-example.md
|
||||
- tutorial/extra-data-types.md
|
||||
- tutorial/cookie-params.md
|
||||
- tutorial/header-params.md
|
||||
- tutorial/response-model.md
|
||||
- tutorial/extra-models.md
|
||||
- tutorial/response-status-code.md
|
||||
- tutorial/request-forms.md
|
||||
- tutorial/request-files.md
|
||||
- tutorial/request-forms-and-files.md
|
||||
- tutorial/handling-errors.md
|
||||
- tutorial/path-operation-configuration.md
|
||||
- tutorial/encoder.md
|
||||
- tutorial/body-updates.md
|
||||
- Dependencies:
|
||||
- tutorial/dependencies/index.md
|
||||
- tutorial/dependencies/classes-as-dependencies.md
|
||||
- tutorial/dependencies/sub-dependencies.md
|
||||
- tutorial/dependencies/dependencies-in-path-operation-decorators.md
|
||||
- tutorial/dependencies/global-dependencies.md
|
||||
- tutorial/dependencies/dependencies-with-yield.md
|
||||
- Security:
|
||||
- tutorial/security/index.md
|
||||
- tutorial/security/first-steps.md
|
||||
- tutorial/security/get-current-user.md
|
||||
- tutorial/security/simple-oauth2.md
|
||||
- tutorial/security/oauth2-jwt.md
|
||||
- tutorial/middleware.md
|
||||
- tutorial/cors.md
|
||||
- tutorial/sql-databases.md
|
||||
- tutorial/bigger-applications.md
|
||||
- tutorial/background-tasks.md
|
||||
- tutorial/metadata.md
|
||||
- tutorial/static-files.md
|
||||
- tutorial/testing.md
|
||||
- tutorial/debugging.md
|
||||
- Advanced User Guide:
|
||||
- advanced/index.md
|
||||
- advanced/path-operation-advanced-configuration.md
|
||||
- advanced/additional-status-codes.md
|
||||
- advanced/response-directly.md
|
||||
- advanced/custom-response.md
|
||||
- advanced/additional-responses.md
|
||||
- advanced/response-cookies.md
|
||||
- advanced/response-headers.md
|
||||
- advanced/response-change-status-code.md
|
||||
- advanced/advanced-dependencies.md
|
||||
- Advanced Security:
|
||||
- advanced/security/index.md
|
||||
- advanced/security/oauth2-scopes.md
|
||||
- advanced/security/http-basic-auth.md
|
||||
- advanced/using-request-directly.md
|
||||
- advanced/dataclasses.md
|
||||
- advanced/middleware.md
|
||||
- advanced/sub-applications.md
|
||||
- advanced/behind-a-proxy.md
|
||||
- advanced/templates.md
|
||||
- advanced/websockets.md
|
||||
- advanced/events.md
|
||||
- advanced/testing-websockets.md
|
||||
- advanced/testing-events.md
|
||||
- advanced/testing-dependencies.md
|
||||
- advanced/testing-database.md
|
||||
- advanced/async-tests.md
|
||||
- advanced/settings.md
|
||||
- advanced/openapi-callbacks.md
|
||||
- advanced/openapi-webhooks.md
|
||||
- advanced/wsgi.md
|
||||
- advanced/generate-clients.md
|
||||
- Deployment:
|
||||
- deployment/index.md
|
||||
- deployment/versions.md
|
||||
- deployment/https.md
|
||||
- deployment/manually.md
|
||||
- deployment/concepts.md
|
||||
- deployment/cloud.md
|
||||
- deployment/server-workers.md
|
||||
- deployment/docker.md
|
||||
- How To - Recipes:
|
||||
- how-to/index.md
|
||||
- how-to/general.md
|
||||
- how-to/sql-databases-peewee.md
|
||||
- how-to/async-sql-encode-databases.md
|
||||
- how-to/nosql-databases-couchbase.md
|
||||
- how-to/graphql.md
|
||||
- how-to/custom-request-and-route.md
|
||||
- how-to/conditional-openapi.md
|
||||
- how-to/extending-openapi.md
|
||||
- how-to/separate-openapi-schemas.md
|
||||
- how-to/custom-docs-ui-assets.md
|
||||
- how-to/configure-swagger-ui.md
|
||||
- Reference (Code API):
|
||||
- reference/index.md
|
||||
- reference/fastapi.md
|
||||
- reference/parameters.md
|
||||
- reference/status.md
|
||||
- reference/uploadfile.md
|
||||
- reference/exceptions.md
|
||||
- reference/dependencies.md
|
||||
- reference/apirouter.md
|
||||
- reference/background.md
|
||||
- reference/request.md
|
||||
- reference/websockets.md
|
||||
- reference/httpconnection.md
|
||||
- reference/response.md
|
||||
- reference/responses.md
|
||||
- reference/middleware.md
|
||||
- OpenAPI:
|
||||
- reference/openapi/index.md
|
||||
- reference/openapi/docs.md
|
||||
- reference/openapi/models.md
|
||||
- reference/security/index.md
|
||||
- reference/encoders.md
|
||||
- reference/staticfiles.md
|
||||
- reference/templating.md
|
||||
- reference/testclient.md
|
||||
- fastapi-people.md
|
||||
- python-types.md
|
||||
- Tutorial - User Guide:
|
||||
- tutorial/index.md
|
||||
- tutorial/first-steps.md
|
||||
- tutorial/path-params.md
|
||||
- tutorial/query-params.md
|
||||
- tutorial/body.md
|
||||
- tutorial/query-params-str-validations.md
|
||||
- tutorial/path-params-numeric-validations.md
|
||||
- tutorial/body-multiple-params.md
|
||||
- tutorial/body-fields.md
|
||||
- tutorial/body-nested-models.md
|
||||
- tutorial/schema-extra-example.md
|
||||
- tutorial/extra-data-types.md
|
||||
- tutorial/cookie-params.md
|
||||
- tutorial/header-params.md
|
||||
- tutorial/response-model.md
|
||||
- tutorial/extra-models.md
|
||||
- tutorial/response-status-code.md
|
||||
- tutorial/request-forms.md
|
||||
- tutorial/request-files.md
|
||||
- tutorial/request-forms-and-files.md
|
||||
- tutorial/handling-errors.md
|
||||
- tutorial/path-operation-configuration.md
|
||||
- tutorial/encoder.md
|
||||
- tutorial/body-updates.md
|
||||
- Dependencies:
|
||||
- tutorial/dependencies/index.md
|
||||
- tutorial/dependencies/classes-as-dependencies.md
|
||||
- tutorial/dependencies/sub-dependencies.md
|
||||
- tutorial/dependencies/dependencies-in-path-operation-decorators.md
|
||||
- tutorial/dependencies/global-dependencies.md
|
||||
- tutorial/dependencies/dependencies-with-yield.md
|
||||
- Security:
|
||||
- tutorial/security/index.md
|
||||
- tutorial/security/first-steps.md
|
||||
- tutorial/security/get-current-user.md
|
||||
- tutorial/security/simple-oauth2.md
|
||||
- tutorial/security/oauth2-jwt.md
|
||||
- tutorial/middleware.md
|
||||
- tutorial/cors.md
|
||||
- tutorial/sql-databases.md
|
||||
- tutorial/bigger-applications.md
|
||||
- tutorial/background-tasks.md
|
||||
- tutorial/metadata.md
|
||||
- tutorial/static-files.md
|
||||
- tutorial/testing.md
|
||||
- tutorial/debugging.md
|
||||
- Advanced User Guide:
|
||||
- advanced/index.md
|
||||
- advanced/path-operation-advanced-configuration.md
|
||||
- advanced/additional-status-codes.md
|
||||
- advanced/response-directly.md
|
||||
- advanced/custom-response.md
|
||||
- advanced/additional-responses.md
|
||||
- advanced/response-cookies.md
|
||||
- advanced/response-headers.md
|
||||
- advanced/response-change-status-code.md
|
||||
- advanced/advanced-dependencies.md
|
||||
- Advanced Security:
|
||||
- advanced/security/index.md
|
||||
- advanced/security/oauth2-scopes.md
|
||||
- advanced/security/http-basic-auth.md
|
||||
- advanced/using-request-directly.md
|
||||
- advanced/dataclasses.md
|
||||
- advanced/middleware.md
|
||||
- advanced/sub-applications.md
|
||||
- advanced/behind-a-proxy.md
|
||||
- advanced/templates.md
|
||||
- advanced/websockets.md
|
||||
- advanced/events.md
|
||||
- advanced/testing-websockets.md
|
||||
- advanced/testing-events.md
|
||||
- advanced/testing-dependencies.md
|
||||
- advanced/testing-database.md
|
||||
- advanced/async-tests.md
|
||||
- advanced/settings.md
|
||||
- advanced/openapi-callbacks.md
|
||||
- advanced/openapi-webhooks.md
|
||||
- advanced/wsgi.md
|
||||
- advanced/generate-clients.md
|
||||
- async.md
|
||||
- Deployment:
|
||||
- deployment/index.md
|
||||
- deployment/versions.md
|
||||
- deployment/https.md
|
||||
- deployment/manually.md
|
||||
- deployment/concepts.md
|
||||
- deployment/cloud.md
|
||||
- deployment/server-workers.md
|
||||
- deployment/docker.md
|
||||
- How To - Recipes:
|
||||
- how-to/index.md
|
||||
- how-to/general.md
|
||||
- how-to/sql-databases-peewee.md
|
||||
- how-to/async-sql-encode-databases.md
|
||||
- how-to/nosql-databases-couchbase.md
|
||||
- how-to/graphql.md
|
||||
- how-to/custom-request-and-route.md
|
||||
- how-to/conditional-openapi.md
|
||||
- how-to/extending-openapi.md
|
||||
- how-to/separate-openapi-schemas.md
|
||||
- how-to/custom-docs-ui-assets.md
|
||||
- how-to/configure-swagger-ui.md
|
||||
- project-generation.md
|
||||
- alternatives.md
|
||||
- history-design-future.md
|
||||
- external-links.md
|
||||
- benchmarks.md
|
||||
- help-fastapi.md
|
||||
- newsletter.md
|
||||
- contributing.md
|
||||
- Resources:
|
||||
- resources/index.md
|
||||
- project-generation.md
|
||||
- external-links.md
|
||||
- newsletter.md
|
||||
- About:
|
||||
- about/index.md
|
||||
- alternatives.md
|
||||
- history-design-future.md
|
||||
- benchmarks.md
|
||||
- Help:
|
||||
- help/index.md
|
||||
- help-fastapi.md
|
||||
- contributing.md
|
||||
- release-notes.md
|
||||
markdown_extensions:
|
||||
toc:
|
||||
|
||||
Reference in New Issue
Block a user