|
Size: 1835
Comment:
|
Size: 2228
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 54: | Line 54: |
| echo "fastapi[standard]" > requirements.txt | cat << 'EOF' > requirements.txt fastapi[standard] pyyaml EOF |
| Line 59: | Line 64: |
| import yaml | |
| Line 60: | Line 66: |
| from fastapi.responses import Response | |
| Line 66: | Line 73: |
@app.get("/openapi.yaml", include_in_schema=False) def get_openapi_yaml(): openapi_json = app.openapi() openapi_yaml = yaml.dump(openapi_json, sort_keys=False) return Response(content=openapi_yaml, media_type="text/yaml") |
|
| Line 74: | Line 88: |
| # http://127.0.0.1:8000/openapi.yaml # http://127.0.0.1:8000/openapi.json |
Contents
FastAPI
FastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.
FastAPI works OK without uv. You can build, install, and run FastAPI projects using traditional tools like pip, venv, and poetry
main.py
Install
1 # uv An extremely fast Python package and project manager, written in Rust.
2 # https://docs.astral.sh/uv/getting-started/installation/
3 curl -LsSf https://astral.sh/uv/install.sh | sh
4 pipx install uv
5 pip install uv
6 uv self update
7 pip install --upgrade uv
8
9 uv add "fastapi[standard]"
10
11 pip install fastapi[standard]
12 # Virtual Environment: Python's built-in venv module
13 # Dependency Management: requirements.txt or pyproject.toml
14
Run
uv run fastapi dev
pip , venv steps
1 cd ~/Documents
2 mkdir -p fastapi-test
3 cd fastapi-test
4 python3 -m venv .venv
5 source .venv/bin/activate
6
7 cat << 'EOF' > requirements.txt
8 fastapi[standard]
9 pyyaml
10
11 EOF
12
13 pip install -r requirements.txt
14
15 cat << 'EOF' > main.py
16 import yaml
17 from fastapi import FastAPI
18 from fastapi.responses import Response
19
20 app = FastAPI()
21
22 @app.get("/")
23 def read_root():
24 return {"message": "Hello world!"}
25
26 @app.get("/openapi.yaml", include_in_schema=False)
27 def get_openapi_yaml():
28 openapi_json = app.openapi()
29 openapi_yaml = yaml.dump(openapi_json, sort_keys=False)
30 return Response(content=openapi_yaml, media_type="text/yaml")
31
32 EOF
33
34 fastapi dev main.py
35 # /home/vitor/Documents/fastapi-test/.venv/bin/python3 \
36 # /home/vitor/Documents/fastapi-test/.venv/bin/fastapi dev main.py
37 # http://127.0.0.1:8000
38 # Server started at http://127.0.0.1:8000
39 # OpenAPI/Swagger documentation at http://127.0.0.1:8000/docs
40 # http://127.0.0.1:8000/openapi.yaml
41 # http://127.0.0.1:8000/openapi.json
42
43 uvicorn main:app --reload
