|
Size: 1486
Comment:
|
Size: 2224
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| <<TableOfContents(2)>> | |
| Line 46: | Line 47: |
| == pip , venv steps == {{{ |
== pip , venv steps == {{{#!highlight sh cd ~/Documents mkdir -p fastapi-test cd fastapi-test |
| Line 50: | Line 54: |
| echo "fastapi[standard]" > requirements.txt | |
| Line 52: | Line 55: |
| main.py | cat << 'EOF' > requirements.txt fastapi[standard] pyyamlEOF pip install -r requirements.txt cat << 'EOF' > main.py import yaml |
| Line 54: | Line 64: |
| from fastapi.responses import Response | |
| Line 59: | Line 70: |
| return {"mensagem": "Olá, Mundo! O FastAPI está a funcionar!"} | return {"message": "Hello world!"} @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") EOF |
| Line 62: | Line 81: |
| # /home/vitor/Documents/fastapi-test/.venv/bin/python3 \ # /home/vitor/Documents/fastapi-test/.venv/bin/fastapi dev main.py |
|
| Line 64: | Line 84: |
| # Server started at http://127.0.0.1:8000 # OpenAPI/Swagger documentation at http://127.0.0.1:8000/docs # http://127.0.0.1:8000/openapi.yaml # http://127.0.0.1:8000/openapi.json |
|
| Line 66: | Line 90: |
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 pyyamlEOF
10
11 pip install -r requirements.txt
12
13 cat << 'EOF' > main.py
14 import yaml
15 from fastapi import FastAPI
16 from fastapi.responses import Response
17
18 app = FastAPI()
19
20 @app.get("/")
21 def read_root():
22 return {"message": "Hello world!"}
23
24 @app.get("/openapi.yaml", include_in_schema=False)
25 def get_openapi_yaml():
26 openapi_json = app.openapi()
27 openapi_yaml = yaml.dump(openapi_json, sort_keys=False)
28 return Response(content=openapi_yaml, media_type="text/yaml")
29
30 EOF
31
32 fastapi dev main.py
33 # /home/vitor/Documents/fastapi-test/.venv/bin/python3 \
34 # /home/vitor/Documents/fastapi-test/.venv/bin/fastapi dev main.py
35 # http://127.0.0.1:8000
36 # Server started at http://127.0.0.1:8000
37 # OpenAPI/Swagger documentation at http://127.0.0.1:8000/docs
38 # http://127.0.0.1:8000/openapi.yaml
39 # http://127.0.0.1:8000/openapi.json
40
41 uvicorn main:app --reload
