@ -37,13 +37,13 @@ FastAPI is een modern, snel (high-performance) webframework voor het bouwen van
De belangrijkste kenmerken zijn:
* **Snel**: Zeer hoge prestaties, vergelijkbaar met **NodeJS** en **Go** (dankzij Starlette en Pydantic). [Een van de snelste Pythonframeworks beschikbaar](#performance).
* **Snel te coderen**: Verhoog de snelheid om functies te ontwikkelen met ongeveer 200% tot 300%. *
* **Minder bugs**: Verminder ongeveer 40% van de door mensen (ontwikkelaars) veroorzaakte fouten. *
* **Intuïtief**: Geweldige editor-ondersteuning. <abbrtitle="ook bekend als auto-complete, autocompletion, IntelliSense">Completion</abbr> overal. Minder tijd debuggen.
* **Snel**: Zeer hoge prestaties, vergelijkbaar met **NodeJS** en **Go** (dankzij Starlette en Pydantic). [Een van de snelste Python-frameworks beschikbaar](#performance).
* **Snel te coderen**: Verhoogt de ontwikkelsnelheid met ongeveer 200% tot 300%. *
* **Minder bugs**: Vermindert ongeveer 40% van de door mensen (ontwikkelaars) veroorzaakte fouten. *
* **Intuïtief**: Geweldige editorondersteuning. <abbrtitle="ook bekend als auto-complete, autocompletion, IntelliSense">Completion</abbr> overal. Minder tijd kwijt aan debuggen.
* **Gemakkelijk**: Ontworpen om gemakkelijk te gebruiken en te leren. Minder tijd documentatie lezen.
* **Robuust**: Krijg productie-klare code. Met automatische interactieve documentatie.
* **Robuust**: Krijg productieklare code. Met automatische interactieve documentatie.
* **Gebaseerd op standaarden**: Gebaseerd op (en volledig compatibel met) de open standaarden voor API's: <ahref="https://github.com/OAI/OpenAPI-Specification"class="external-link"target="_blank">OpenAPI</a> (voorheen bekend als Swagger) en <ahref="https://json-schema.org/"class="external-link"target="_blank">JSON Schema</a>.
<small>* schatting gebaseerd op tests uitgevoerd door een intern ontwikkelteam, die productie applicaties bouwden.</small>
@ -73,7 +73,7 @@ De belangrijkste kenmerken zijn:
## Meningen { #opinions }
"_[...] Ik gebruik **FastAPI** tegenwoordig enorm veel. [...] Ik ben eigenlijk van plan om het te gebruiken voor alle **MLservices van mijn team bij Microsoft**. Sommige daarvan worden geïntegreerd in het core **Windows** product en sommige **Office** producten._"
"_[...] Ik gebruik **FastAPI** tegenwoordig enorm veel. [...] Ik ben eigenlijk van plan om het te gebruiken voor alle **ML-services van mijn team bij Microsoft**. Sommige daarvan worden geïntegreerd in het core **Windows-product** en sommige **Office-producten**._"
"_**Netflix** is verheugd om de open-sourcerelease aan te kondigen van ons **crisis management**orkestratie framework: **Dispatch**! [gebouwd met **FastAPI**]_"
"_**Netflix** is verheugd om de open-sourcerelease aan te kondigen van ons **crisismanagement**-orkestratie framework: **Dispatch**! [gebouwd met **FastAPI**]_"
@ -111,7 +111,7 @@ De belangrijkste kenmerken zijn:
---
"_Als iemand op zoek is om een productie Python API te bouwen, zou ik **FastAPI** sterk aanbevelen. Het is **prachtig ontworpen**, **eenvoudig te gebruiken** en **zeer schaalbaar**, het is een **sleutelcomponent** geworden in onze API-first ontwikkelingsstrategie en drijft veel automatiseringen en services aan zoals onze Virtual TAC Engineer._"
"_Als iemand een productie Python API wil bouwen, zou ik **FastAPI** sterk aanbevelen. Het is **prachtig ontworpen**, **eenvoudig te gebruiken** en **zeer schaalbaar**, het is een **sleutelcomponent** geworden in onze API-first ontwikkelingsstrategie en drijft veel automatiseringen en services aan zoals onze Virtual TAC Engineer._"
@ -119,7 +119,7 @@ De belangrijkste kenmerken zijn:
## FastAPI mini documentaire { #fastapi-mini-documentary }
Er is een <ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"class="external-link"target="_blank">FastAPI mini documentaire</a> uitgebracht eind 2025, je kunt hem online bekijken:
Er is een <ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"class="external-link"target="_blank">FastAPI mini documentaire</a> uitgebracht eind 2025; je kunt hem online bekijken:
<ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"target="_blank"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
@ -136,7 +136,7 @@ Als je een <abbr title="Command Line Interface">CLI</abbr> app bouwt voor gebrui
FastAPI staat op de schouders van reuzen:
* <ahref="https://www.starlette.dev/"class="external-link"target="_blank">Starlette</a> voor de webonderdelen.
* <ahref="https://docs.pydantic.dev/"class="external-link"target="_blank">Pydantic</a> voor de dataonderdelen.
* <ahref="https://docs.pydantic.dev/"class="external-link"target="_blank">Pydantic</a> voor de data-onderdelen.
## Installatie { #installation }
@ -261,22 +261,22 @@ Je zult de JSON response zien als:
Je hebt al een API gemaakt die:
* HTTPverzoeken ontvangt in de _paths_`/` en `/items/{item_id}`.
* Beide _paths_nemen `GET`<em>operations</em> (ook bekend als HTTP_methods_).
* De _path_`/items/{item_id}` heeft een _pathparameter_`item_id` die een `int` moet zijn.
* De _path_`/items/{item_id}` heeft een optionele `str`_queryparameter_`q`.
* HTTP-verzoeken ontvangt in de _paths_`/` en `/items/{item_id}`.
* Beide _paths_hebben `GET`-<em>operaties</em> (ook bekend als HTTP-_methods_).
* De _path_`/items/{item_id}` heeft een _path-parameter_`item_id` die een `int` moet zijn.
* De _path_`/items/{item_id}` heeft een optionele `str`_query-parameter_`q`.
Ga nu naar <ahref="http://127.0.0.1:8000/docs"class="external-link"target="_blank">http://127.0.0.1:8000/docs</a>.
Je zult de automatische interactieve APIdocumentatie zien (geleverd door <ahref="https://github.com/swagger-api/swagger-ui"class="external-link"target="_blank">Swagger UI</a>):
Je zult de automatische interactieve API-documentatie zien (geleverd door <ahref="https://github.com/swagger-api/swagger-ui"class="external-link"target="_blank">Swagger UI</a>):
En nu, ga naar <ahref="http://127.0.0.1:8000/redoc"class="external-link"target="_blank">http://127.0.0.1:8000/redoc</a>.
Ga nu naar <ahref="http://127.0.0.1:8000/redoc"class="external-link"target="_blank">http://127.0.0.1:8000/redoc</a>.
Je zult de alternatieve automatische documentatie zien (geleverd door <ahref="https://github.com/Rebilly/ReDoc"class="external-link"target="_blank">ReDoc</a>):
* Automatische en duidelijke fouten wanneer de data ongeldig is.
* Validatie zelfs voor diep geneste JSONobjecten.
* Validatie zelfs voor diep geneste JSON-objecten.
* <abbrtitle="ook bekend als: serialization, parsing, marshalling">Conversie</abbr> van input data: afkomstig van het netwerk naar Python data en types. Lezen van:
Terug komend op het vorige code voorbeeld, **FastAPI** zal:
Terugkomend naar het vorige codevoorbeeld, **FastAPI** zal:
* Valideren dat er een `item_id` in het path is voor `GET` en `PUT`verzoeken.
* Valideren dat de `item_id` van het type `int` is voor `GET` en `PUT`verzoeken.
* Valideren dat er een `item_id` in het path is voor `GET`- en `PUT`-verzoeken.
* Valideren dat de `item_id` van het type `int` is voor `GET`- en `PUT`-verzoeken.
* Als dat niet zo is, zal de client een nuttige, duidelijke fout zien.
* Controleren of er een optionele queryparameter genaamd `q` is (zoals in `http://127.0.0.1:8000/items/foo?q=somequery`) voor `GET`verzoeken.
* Controleren of er een optionele query-parameter genaamd `q` is (zoals in `http://127.0.0.1:8000/items/foo?q=somequery`) voor `GET`-verzoeken.
* Omdat de `q` parameter is gedeclareerd met `= None`, is het optioneel.
* Zonder de `None` zou het verplicht zijn (zoals de body in het geval met `PUT`).
* Voor `PUT`verzoeken naar `/items/{item_id}`, lees de body als JSON:
* Voor `PUT`-verzoeken naar `/items/{item_id}`, lees de body als JSON:
* Controleer dat het een verplicht attribuut `name` heeft dat een `str` moet zijn.
* Controleer dat het een verplicht attribuut `price` heeft dat een `float` moet zijn.
* Controleer dat het een optioneel attribuut `is_offer` heeft, dat een `bool` moet zijn, indien aanwezig.
* Dit zou ook werken voor diep geneste JSONobjecten.
* Dit zou ook werken voor diep geneste JSON-objecten.
* Automatisch converteren van en naar JSON.
* Documenteer alles met OpenAPI, dat kan worden gebruikt door:
* Interactieve documentatie systemen.
@ -443,11 +443,11 @@ Voor een completer voorbeeld inclusief meer functies, zie de <a href="https://fa
**Spoiler alert**: de tutorial - user guide bevat:
* Declaratie van **parameters** van andere verschillende plaatsen als: **headers**, **cookies**, **form fields** en **files**.
* Declaratie van **parameters** van verschillende andere plaatsen zoals: **headers**, **cookies**, **form fields** en **files**.
* Hoe **validatie beperkingen** in te stellen als `maximum_length` of `regex`.
* Een zeer krachtig en gemakkelijk te gebruiken **<abbrtitle="ook bekend als components, resources, providers, services, injectables">Dependency Injection</abbr>** systeem.
* Beveiliging en authenticatie, inclusief ondersteuning voor **OAuth2** met **JWT tokens** en **HTTP Basic** auth.
* Meer geavanceerde (maar even gemakkelijke) technieken voor het declareren van **diep geneste JSONmodellen** (dankzij Pydantic).
* Meer geavanceerde (maar even gemakkelijke) technieken voor het declareren van **diep geneste JSON-modellen** (dankzij Pydantic).
* **GraphQL** integratie met <ahref="https://strawberry.rocks"class="external-link"target="_blank">Strawberry</a> en andere bibliotheken.
* Veel extra functies (dankzij Starlette) zoals:
* **WebSockets**
@ -456,13 +456,13 @@ Voor een completer voorbeeld inclusief meer functies, zie de <a href="https://fa
* **Cookie Sessions**
* ...en meer.
### Implementeer je app (optioneel) { #deploy-your-app-optional }
### Deploy je app (optioneel) { #deploy-your-app-optional }
Je kunt optioneel je FastAPI app implementeren naar <ahref="https://fastapicloud.com"class="external-link"target="_blank">FastAPI Cloud</a>, ga en meld je aan voor de wachtlijst als je dat nog niet hebt gedaan. 🚀
Je kunt optioneel je FastAPI-app deployen naar <ahref="https://fastapicloud.com"class="external-link"target="_blank">FastAPI Cloud</a>, meld je aan voor de wachtlijst als je dat nog niet hebt gedaan. 🚀
Als je al een **FastAPI Cloud** account hebt (we hebben je uitgenodigd vanaf de wachtlijst 😉), kun je je applicatie implementeren met één commando.
Als je al een **FastAPI Cloud**-account hebt (we hebben je uitgenodigd vanaf de wachtlijst 😉), kun je je applicatie deployen met één commando.
Voordat je implementeert, zorg ervoor dat je bent ingelogd:
Voordat je deployed, zorg ervoor dat je bent ingelogd:
<divclass="termy">
@ -474,7 +474,7 @@ You are logged in to FastAPI Cloud 🚀
</div>
Implementeer vervolgens je app:
Deploy vervolgens je app:
<divclass="termy">
@ -496,23 +496,23 @@ Dat is het! Nu kun je je app op die URL bereiken. ✨
**<ahref="https://fastapicloud.com"class="external-link"target="_blank">FastAPI Cloud</a>** is gebouwd door dezelfde auteur en team achter **FastAPI**.
Het stroomlijnt het proces van het **bouwen**, **implementeren** en **toegang krijgen tot** een API met minimale inspanning.
Het stroomlijnt het proces van het **bouwen**, **deployen** en **toegang krijgen tot** een API met minimale inspanning.
Het brengt dezelfde **ontwikkelaarservaring** van het bouwen van apps met FastAPI naar het **implementeren** ervan naar de cloud. 🎉
Het brengt dezelfde **ontwikkelaarservaring** van het bouwen van apps met FastAPI naar het **deployen** ervan naar de cloud. 🎉
FastAPI Cloud is de primaire sponsor en financieringsverstrekker voor de *FastAPI en friends* open source projecten. ✨
#### Implementeer naar andere cloud providers { #deploy-to-other-cloud-providers }
#### Deployen naar andere cloudproviders { #deploy-to-other-cloud-providers }
FastAPI is open source en gebaseerd op standaarden. Je kunt FastAPI apps implementeren naar elke cloud provider die je kiest.
FastAPI is open source en gebaseerd op standaarden. Je kunt FastAPI-apps deployen naar elke cloudprovider die je kiest.
Volg de gidsen van je cloud provider om FastAPI apps met hen te implementeren. 🤓
Volg de gidsen van je cloudprovider om FastAPI-apps met hen te deployen. 🤓
## Prestaties { #performance }
Onafhankelijke TechEmpower benchmarks tonen **FastAPI**applicaties draaiend onder Uvicorn als <ahref="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7"class="external-link"target="_blank">een van de snelste Pythonframeworks beschikbaar</a>, alleen onder Starlette en Uvicorn zelf (intern gebruikt door FastAPI). (*)
Onafhankelijke TechEmpower benchmarks tonen **FastAPI**-applicaties draaiend onder Uvicorn als <ahref="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7"class="external-link"target="_blank">een van de snelste Python-frameworks beschikbaar</a>, alleen onder Starlette en Uvicorn zelf (intern gebruikt door FastAPI). (*)
Om meer te begrijpen hierover, zie de sectie <ahref="https://fastapi.tiangolo.com/benchmarks/"class="internal-link"target="_blank">Benchmarks</a>.
Voor meer informatie hierover, zie de sectie <ahref="https://fastapi.tiangolo.com/benchmarks/"class="internal-link"target="_blank">Benchmarks</a>.
## Afhankelijkheden { #dependencies }
@ -536,7 +536,7 @@ Gebruikt door FastAPI:
* <ahref="https://www.uvicorn.dev"target="_blank"><code>uvicorn</code></a> - voor de server die je applicatie laadt en serveert. Dit bevat `uvicorn[standard]`, wat enkele afhankelijkheden bevat (bijv. `uvloop`) die nodig zijn voor high performance serving.
* `fastapi-cli[standard]` - om het `fastapi` commando te bieden.
* Dit bevat `fastapi-cloud-cli`, waarmee je je FastAPI applicatie kunt implementeren naar <ahref="https://fastapicloud.com"class="external-link"target="_blank">FastAPI Cloud</a>.
* Dit bevat `fastapi-cloud-cli`, waarmee je je FastAPI-applicatie kunt deployen naar <ahref="https://fastapicloud.com"class="external-link"target="_blank">FastAPI Cloud</a>.
### Zonder `standard` Afhankelijkheden { #without-standard-dependencies }