FastAPI forklart på 5 minutter eller mindre

FastAPI, et Python-rammeverk som lar deg utvikle web-APIer, har vært populært de siste årene.

API (Application Programming Interface) er grunnlaget for moderne arkitektur. De lar applikasjoner modulariseres og frakobles. Dette lar deg lage applikasjoner raskt og gjør det enkelt å vedlikeholde dem.

Derfor er det en god idé å lære FastAPI hvis du planlegger å bruke Python til å utvikle webapplikasjoner. Denne artikkelen vil lære deg alt om grunnleggende FastAPI.

Hva er FastAPI?

FastAPI er et Python-basert nettrammeverk. Det har vakt mye oppmerksomhet de siste årene. Utviklingsstrukturen ligner på Flask, som var det mest populære valget for de som ønsket å lære Python-nettutvikling.

FastAPI er enkel å bruke, og dokumentasjonen er tydelig og lett å følge. FastAPI brukes av teknologigiganter som Microsoft, Netflix og Uber.

FastAPI har alle funksjonene du forventer av en API-bygger, men den er ikke begrenset til disse. Du kan bruke den til å montere WSGI bakover, som de fleste brukere ikke vet om.

FastAPIs primære formål er å bygge API-endepunkter, som navnet antyder. Dette kan gjøres like effektivt som å returnere Python-ordbokdata i JSON eller bruke OpenAPIs interaktive Swagger UI.

FastAPI begrenser seg ikke til APIer. Den kan brukes til nesten alt et nettrammeverk gjør, fra å levere nettsider med Jinja2-malmotoren til å betjene WebSockets-drevne applikasjoner.

Nedenfor er fordelene med FastAPI:

  • FastAPI lar deg validere datatypen til utvikleren, selv når du bruker nestede JSON-spørringer.
  • Den tilbyr autofullføringsfunksjonen, som lar deg lage applikasjoner på kortere tid og krever mindre innsats.
  • Den er kompatibel med OpenAPI- og JSON Schema-vokabularet, som lar deg validere og kommentere JSON-dokumenter.
  • FastAPI lar deg raskt bygge et GraphQL API ved å bruke et Python-bibliotek kalt graphene–python.
  • FastAPI er kompatibel med OAuth 2.0 så vel som eksterne leverandører.
  Java gRPC fra bunnen av

Nedenfor er ulempene med FastAPI:

  • FastAPI er fortsatt et nytt rammeverk, så det er lite retningslinjer for fellesskap. Den har ikke nok ekstern utdanningsinformasjon som bøker, kurs eller opplæringsprogrammer.
  • Fordi vi må knytte alle komponentene sammen i FastAPI, kan hovedfilen bli veldig stor eller overfylt.

Unike funksjoner i FastAPI

Dette er de unike funksjonene som gjør FastAPI til det mest populære Python-nettverket til dags dato.

  • Høy ytelse: FastAPI er mer ytelsesdyktig enn andre python-rammeverk. FastAPIs hastighetsorienterte rammeverk gjør det til et toppvalg. Alt koker ned til raskere hastighet og bedre ytelse ved å utnytte Starlette-funksjoner, lage APIer og produsere klare koder.
  • Rask å kode: Utviklere trenger ikke lage noe nytt med produksjonsklare koder. Dette fremskynder prosessen med omtrent 200 % til 30 %. FastAPI kjører på Starlette og har mange flere funksjoner som kan brukes til å bygge APIer for datavalidering og serialisering. Rammeverket har allerede alle nødvendige komponenter på plass, noe som reduserer tiden det tar å kode.
  • Minimale feil: Rammeverket har en autofullføringsfunksjon som automatisk setter inn mesteparten av koden i stykket. Dette minimerer muligheten for feil og forbedrer utskriftskvaliteten.
  • Lett å forstå: FastAPI gjør ikke noe annet enn Modern Python. Det er en modifisert versjon av Python 3.6 og inneholder ingen ny syntaks. Rammeverket kan brukes av alle som forstår språket godt.
  • Minimal innsats: FastAPI genererer OpenAPI-dokumentasjon automatisk med minimal innsats fra utvikleren. Denne informasjonen finner du under programmets/doc-katalogen. Dokumentasjonen inneholder detaljert informasjon om API-endepunkter, returkoder, svarparametere og andre detaljer.
  • Redaktørstøtte: Alle komponentene i rammeverket er designet med autofullføring i tankene. Det er enkelt, og gir utviklere muligheten til å produsere ferdig kode. Du kan også teste koden rett fra nettleseren din med den interaktive dokumentasjonen.
  • Åpne standarder: FastAPIs Python-nettrammeverk er en stor fordel. Rammeverket er kompatibelt med OpenAPI, tidligere kjent som Swagger, som gjør det mulig å lage APIer.

FastAPI installasjon

Her er de enkle trinnene for å installere FastAPI på Linux eller Windows.

#1. FastAPI-installasjon på Linux

Installer Python 3 på Linux ved å bruke kommandoen nedenfor:

sudo apt install python3

Installer pip på Linux ved å bruke kommandoen nedenfor:

sudo apt install python3-pip

Installer deretter FastAPI på Linux.

pip install fastapi

Du trenger også en ASGI-server. Så installer uvicorn med pip.

pip install "uvicorn[standard]"

#2. FastAPI-installasjon på Windows

Installer Python 3 på Windows ved å bruke Microsoft Store. Dette vil også installere pip.

  Hvordan en passordbehandling beskytter deg mot phishing-svindel

Installer deretter FastAPI på Windows.

pip install fastapi

Til slutt, installer ASGI server uvicorn.

pip install "uvicorn[standard]"

Nye tids bruk av FastAPI

Her er noen FastAPI new-age bruksområder:

Automatiserte dokumenter

Dokumentasjon om API-typer og endepunkter er et must. Dette problemet kan løses ved hjelp av OpenAPI, Swagger UI og ReDoc. Disse pakkes automatisk med FastAPI. Dette lar deg konsentrere deg om koden din og ikke sette opp verktøy.

Skrev Python

FastAPI bruker Python 3.6 type erklæringer (takket være Pydantic). Dette betyr at den bruker en Python-funksjon som lar deg spesifisere typen og typen til en variabel. Dette rammeverket gjør stor bruk av det, og gir deg utmerket redigeringsstøtte. Autofullføring fungerer utrolig.

Validering

Pydantic integrerer allerede validering i dette rammeverket. Validering av standard Python-typer og tilpassede feltvalideringer kan gjøres.

Sikkerhet og autentisering

Dette er en viktig del av enhver API. Vi gjentar ofte bare koden, så hvorfor ikke inkludere noe av det i rammeverket vårt? FastAPI gjør akkurat dette.

Biblioteket støtter HTTP Basic, OAuth2-tokens (JWT-tokens) og header-API-nøkler.

Asynkron natur

FastAPI støtter som standard asynkrone endepunkter, noe som gjør koden din enklere og mer effektiv. Dette er en betydelig fordel i forhold til Flask.

FastAPI vs. Flask: Nøkkelforskjeller

Bruksforskjeller

FastAPI, en full-stack-plattform som gir alt du trenger for å bygge din API, er tilgjengelig. Flask, på den annen side, er et mikrorammeverk og tilbyr ikke alle de samme funksjonene som FastAPI. Flask kan være nyttig hvis du trenger å prototype en idé eller lage en enkel nettapp raskt.

Flask og FastAPI er veldig forskjellige i måten de brukes på. Flask-rammeverket kan brukes til å prototype nye ideer og applikasjoner, mens FastAPI-rammeverket kan brukes til å bygge APIer. Du kan raskt bygge en backend-server ved å bruke den uten kodekunnskap.

Småskala nettsteder og nettapplikasjoner

FastAPI er enkel å bruke, lett og kan brukes til småskala web- og applikasjonsutvikling. Den inkluderer et objektrelasjonslag (ORM), som håndterer dataobjekter i applikasjonen, slik at du raskt kan få tilgang til dem gjennom koding.

  8K TV har ankommet. Her er det du trenger å vite

ORM-laget holder styr på databasene dine og lar deg glemme å oppdatere dem manuelt når ny informasjon legges til, endres eller slettes fra nettstedet eller applikasjonen.

WSGI vs. ASGI

Du har kanskje lagt merke til en grunnleggende forskjell: Flask bruker WSGI som standardgrensesnitt, mens FastAPI bruker ASGI. Som tidligere nevnt behandler WSGI forespørsler synkront. Forespørsler behandles sekvensielt. Man kan ikke starte før siste oppgave er fullført.

ASGI håndterer forespørsler asynkront. Dette gjør at oppgaver kan utføres i sitt eget tempo og krever ikke at de venter på andre.

Samfunnet

En annen forskjell er fellesskapet. Flask er et fellesskap som har eksistert lenger enn FastAPI. Dette betyr god dokumentasjon og hjelp utenfra fra andre som skriver om Flask.

FastAPI er fortsatt et nytt prosjekt, så samfunnet har ennå ikke vokst like mye. Dette betyr at selv om det er nok dokumentasjon, er det ikke mye hjelp utenfra.

Nedenfor er en oppsummert tabell for FastAPI vs. Flask:

FastAPIFlaskDatavalidering er innebygd.Den har ikke datavalidering.Asynkron oppgavestøtte er tilgjengeligAsynkron oppgavestøtte er ikke tilgjengeligImplementer ASGI-spesifikasjoner Støtter WSGI-applikasjonerAutomatisk dokumentstøtteManuell dokumentstøtteFeilmeldingen vises i JSON-formatFeilmeldingen vises på HTML-sider Mindre fellesskapsstøtteRik fellesskapsstøtte

FastAPI eller Flask: Hvilken bør du velge?

FastAPI og Flask kan raskt sette opp Python-webservere og datavitenskapsapplikasjoner. Begge krever samme innsats for distribusjon, men hvilket rammeverk er best for ditt neste prosjekt?

FastAPI er det beste alternativet når hastighet og ytelse betyr mest. Dette rammeverket er best hvis du bygger et CDN og forventer betydelig trafikk. FastAPI lar deg laste ned rammeverket og umiddelbart bruke det. Prosjektmalen vil spare deg tid og hjelpe deg å spare tid.

FastAPI er et bedre alternativ enn Flask når du bygger APIer. Dette gjelder spesielt når mikrotjenester og andre hensyn vurderes. Flask er det beste valget hvis du allerede har mange verktøy bygget rundt dette rammeverket.

Konklusjon

Så det handlet om FastAPI. FastAPI tilbyr overlegen hastighet og ytelse. Dette rammeverket er det beste hvis du bygger innholdsleveringsnettverket ditt og forventer trafikk. FastAPIs innovative rammeverk og prosjektmal vil hjelpe deg å spare tid.

Flask kan være bedre for å lage APIer, spesielt mikrotjenester. FastAPI er også bedre enn Flask. Kolbe er et bedre valg hvis du allerede bruker den mye.

Du kan også utforske noen populære Python Frameworks for å bygge API.