FastAPI-backend-kehityksen intensiivikurssi · Oppitunti

FastAPI:n riippuvuuksien ymmärtäminen

Tutustukaa riippuvuuksien injektoinnin käsitteeseen ja siihen, miten se selkeyttää koodin organisointia ja uudelleenkäyttöä FastAPI:ssa.

Oppitunti 1/411 vaihetta

FastAPI:n riippuvuuksien ymmärtäminen on ilmainen FastAPI-backend-kehityksen intensiivikurssi-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu FastAPI-backend-kehityksen intensiivikurssi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. FastAPI-backend-kehityksen intensiivikurssi-kurssilla on yhteensä 4 oppituntia.

Mitä riippuvuusinjektio on?

Oletteko koskaan toivoneet, että funktiot saisivat tarvitsemansa työkalut kuin taikaiskusta? Juuri tässä riippuvuusinjektio (DI) auttaa!

FastAPI:ssa DI on tehokas suunnittelumalli, jossa komponentit, kuten API:n päätepisteet, eivät luo riippuvuuksiaan itse. Sen sijaan ne ilmoittavat tarvitsemansa asiat, ja FastAPI "injektoi" ne.

FastAPI:n DI:n hyödyt

FastAPI käyttää DI:tä laajasti, koska se tekee koodistanne:

  • Uudelleenkäytettävää: Kirjoitatte logiikan kerran ja käytätte sitä kaikkialla.
  • Testattavaa: Voitte helposti vaihtaa oikeat palvelut testeissä käytettäviin jäljitelmäversioihin.
  • Selkeää: Polkuoperaatiofunktiot keskittyvät päätehtäväänsä.
  • Ylläpidettävää: Riippuvuuksiin tehdyt muutokset eivät leviä koko sovellukseen.

Perusriippuvuuden luominen

FastAPI:n riippuvuus on yleensä tavallinen Python-funktio.

Funktio voi tehdä ennen API:n päälogiikan suorittamista tarvittavat alustukset, tarkistukset tai resurssien hankinnan. Se voi myös palauttaa arvon.

FastAPI kutsuu tätä funktiota automaattisesti ja välittää sen tuloksen päätepisteellenne.

Riippuvuuden injektointi päätepisteeseen

Riippuvuuden käyttämiseksi ilmoitatte sen parametrina polkuoperaatiofunktiossanne FastAPI:n erityisen Depends-funktion avulla.

Kun pyyntö saapuu, FastAPI tarkistaa päätepisteen parametrit, ratkaisee riippuvuudet ja kutsuu sitten päätepistettä tulosten kanssa.

Yksinkertainen riippuvuus käytännössä

Tarkastellaan perusriippuvuutta, joka palauttaa yksinkertaisen merkkijonon. Huomaatte, että FastAPI kutsuu get_message-funktiota ennen read_root-funktiota.

from fastapi import FastAPI, Depends

app = FastAPI()

def get_message():
    return "Hello from dependency!"

@app.get("/")
async def read_root(message: str = Depends(get_message)):
    return {"message": message}

# To run this:
# 1. Save as main.py
# 2. pip install fastapi uvicorn
# 3. uvicorn main:app --reload
# Then visit http://127.0.0.1:8000/

Riippuvuuksilla voi olla parametreja

Riippuvuudet eivät rajoitu yksinkertaisiin funktioihin. Niillä voi myös olla omia parametreja, jotka FastAPI ratkaisee samalla tavalla.

Tämä tarkoittaa, että riippuvuus voi itse riippua muista riippuvuuksista, jolloin muodostuu ketju! Tämä on erittäin tehokasta monimutkaisen logiikan rakentamisessa.

Syötettä vastaanottava riippuvuus

Tässä greet_user on riippuvuus, joka vastaanottaa name-parametrin. Jos name-parametria ei anneta kyselyssä, sen oletusarvo on 'Guest'.

from fastapi import FastAPI, Depends

app = FastAPI()

def greet_user(name: str = "Guest"):
    return f"Hello, {name}!"

@app.get("/greet/")
async def say_hello(greeting: str = Depends(greet_user)):
    return {"greeting": greeting}

# To run this:
# uvicorn main:app --reload
# Visit http://127.0.0.1:8000/greet/
# And http://127.0.0.1:8000/greet/?name=Coddy

`Depends()`-funktion ymmärtäminen

Päätepisteen riippuvuuteen yhdistävä taikaosa on Depends()-funktio.

  • Se kertoo FastAPI:lle: "Hei, ratkaise tämä riippuvuus ennen tämän funktion suorittamista."
  • Välitätte Depends()-funktiolle suoraan riippuvuusfunktion (tai kutsuttavan olion), ette sen tulosta.
  • FastAPI huolehtii riippuvuusfunktion kutsumisesta puolestanne.

Riippuvuuksien käyttötapaukset

Riippuvuudet sopivat erinomaisesti seuraaviin tarkoituksiin:

  • Tietokantayhteydet: Hakekaa istunto jokaista pyyntöä varten.
  • Todennus: Varmistakaa käyttäjän tunnistetiedot.
  • Valtuutus: Tarkistakaa käyttäjän roolit ja käyttöoikeudet.
  • Jaettu logiikka: Kaikki koodi, jota useat päätepisteet tarvitsevat.

Ne pitävät API:n selkeänä ja keskittyneenä.

Riippuvuuksien käsiteharjoitus

Tarkastelkaa seuraavaa FastAPI-koodikatkelmaa:

from fastapi import FastAPI, Depends

app = FastAPI()

def get_db_session():
    # Imagine this connects to a database
    return "Database Session Object"

@app.get("/items/")
async def read_items(session: str = Depends(get_db_session)):
    return {"message": f"Using {session}"}

Mikä on session-muuttujan arvo read_items-funktion sisällä, kun pyyntö lähetetään osoitteeseen /items/?

Kertaus: riippuvuudet paljastettu

Olette ottaneet tärkeän askeleen FastAPI:n hallinnassa ymmärtämällä riippuvuusinjektion!

  • Riippuvuudet ovat funktioita, jotka FastAPI suorittaa ennen päätepistettä.
  • Ne pitävät koodin modulaarisena, uudelleenkäytettävänä ja testattavana.
  • Ilmoitatte ne muodossa param: Type = Depends(your_dependency_func).

Seuraavaksi tutustumme yleisempiin ja edistyneempiin riippuvuusmalleihin!

Aloita maksutta

Opi FastAPI-backend-kehityksen intensiivikurssi tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
21
Oppitunnit
84

Usein kysytyt kysymykset

Onko oppitunti ”FastAPI:n riippuvuuksien ymmärtäminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa FastAPI-backend-kehityksen intensiivikurssi-oppimispolun 3 oppituntia, myös oppitunnin “FastAPI:n riippuvuuksien ymmärtäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. FastAPI-backend-kehityksen intensiivikurssi-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”FastAPI:n riippuvuuksien ymmärtäminen”?

Tutustukaa riippuvuuksien injektoinnin käsitteeseen ja siihen, miten se selkeyttää koodin organisointia ja uudelleenkäyttöä FastAPI:ssa. Harjoittelet FastAPI-backend-kehityksen intensiivikurssi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni FastAPI-backend-kehityksen intensiivikurssi-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin FastAPI-backend-kehityksen intensiivikurssi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”FastAPI:n riippuvuuksien ymmärtäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä FastAPI-backend-kehityksen intensiivikurssi-oppitunnilla?

Kyllä. Jokainen FastAPI-backend-kehityksen intensiivikurssi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. FastAPI:n riippuvuuksien ymmärtäminen
  2. Yleisten riippuvuuksien injektointi
  3. Luokkapohjaiset ja yield-riippuvuudet
  4. Globaalit riippuvuudet ja aliriippuvuudet
← Takaisin: FastAPI-backend-kehityksen intensiivikurssi