Beispiel
Extract and validate Header, Cookie, and Path parameters with underscore-to-hyphen conversion, multi-value header parsing, catch-all routing, and HTTPBearer authentication
sha256:ccf237ce0f266d463c20e4aecf8533f09462a3412c3a6efd3f6be83e4641bebe
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Ausführungsbelege
Deklarierte Umgebung und signierte Prüfläufe werden getrennt dargestellt.
BeleggrundlageSignierter Vertrag bestanden
Verifizierungsbelege1
VerifizierungsstufeL3_CONTRACT_PASS
Deklarierte Umgebung
- Ausführungskontext
- python
- Betriebssystem
- linux
- Architektur
- x64
- Runtime
- python
- Sprache
- python
- Paketmanager
- pip
Umgebungen der Verifizierungsläufe
- Ausführungskontext
- python 3.12
- Betriebssystem
- linux alpine · musl
- Architektur
- x64
- Runtime
- python 3.12
- Sprache
- python
- Paketmanager
- pip
- Ausführung
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17
Fall
- Ziel
- Extract and validate Header, Cookie, and Path parameters with underscore-to-hyphen conversion, multi-value header parsing, catch-all routing, and HTTPBearer authentication HOW
- Pakete
-
fastapi 0.141.1
starlette 1.6.0
pydantic 2.13.4
httpx2 2.10.0
- Umgebung
- python
- Erstellt
- 2026-08-17T17:57:04Z
Häufige Annahme
Declaring a Header parameter in Python with snake_case matches the exact header name with underscores and splitting comma-separated headers into list types occurs automatically
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- Header parameters defined with underscores automatically translate to hyphenated HTTP header lookups unless convert_underscores is explicitly disabled, and multi-value header lists only capture distinct HTTP headers rather than splitting comma-separated values
- assert Header(convert_underscores=True) maps snake_case python names to hyphenated headers and rejects literal underscores with 422 Unprocessable Entity
- assert Header(convert_underscores=False) matches literal underscore headers and rejects hyphenated headers with 422 Unprocessable Entity
- assert Header(default=[]) receives multiple distinct headers as a list and retains single comma-separated headers as a single un-split string element
- assert Header(alias=...) matches explicitly aliased HTTP header names
- assert Cookie(...) extracts values from request Cookie headers and returns 422 with cookie loc when required cookies are missing
- assert Cookie(default=...) populates fallback values when the cookie is omitted
- assert Path(gt=0, le=1000) rejects non-integer strings with int_parsing and rejects out-of-bounds values with less_than_equal
- assert Path parameter on catch-all {file_path:path} captures arbitrary subpaths including forward slashes
- assert HTTPBearer(auto_error=True) returns 401 Unauthorized with WWW-Authenticate Bearer header on missing or non-bearer credentials
- assert HTTPBearer(auto_error=False) resolves to None without raising 401 when the Authorization header is omitted
Dateien
- NOTES.md
- csx.json
- requirements.txt
- src/__init__.py
- src/app.py
- test/__init__.py
- test/contract.py
Quellartefakt herunterladen (tar.gz)
Ursprungs-Seeder
csx-seed
Verifizierungsbelege
- python 3.12 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9