- Dooro nooca faylka iyo qaababka ku salaysan sifooyinka iyadoo lagu saleynayo cabbirka mashruuca, qaab-dhismeedka iyo baahiyaha kooxda, adigoo ilaalinaya isku dheelitirka mudnaanta koowaad.
- Ka faa'iidayso tilmaamaha nooca FastAPI, moodooyinka Pydantic iyo duritaanka ku-tiirsanaanta si aad u ilaaliso marin-haweedka mid khafiif ah, qaab-dhismeed macquul ah iyo xaqiijin labadaba awood iyo dib-u-isticmaali kara.
- Qaab-dhismeedka amniga, tijaabinta, I/O aan isku-xirnayn iyo habaynta sida walaacyada heerka koowaad si kor loogu qaado wax soo saarka iyo kooxo badan aysan u baahnayn dib-u-qoris buuxda.
- Qaado magacyo cad, guuritaan iyo heshiisyo qalabayn si loo ilaaliyo in diyaarad FastAPI ah oo sii kordheysa ama adeeg yar la sii wadi karo waqti ka dib.
Naqshadaynta qaab-dhismeed nadiif ah oo la miisaami karo oo loogu talagalay mashruuca FastAPI waa mid ka mid ah go'aannadaas oo u muuqda kuwo yar bilowga laakiin si buuxda u beddelaya noloshaada lix bilood ka dib, marka saldhiga koodhka uu koro, kooxdu way ballaaratay waxaadna isku dayeysaa inaad raadraacdo cillad ku jirta qaybo badan. Qaab-dhismeed wanaagsan wuxuu dedejiyaa gelitaanka, wuxuu yareeyaa dib-u-celinta wuxuuna ka dhigaa dib-u-habaynta mid aad u xanuun badan.
FastAPI waxay ku siinaysaa dabacsanaan aad u weyn, laakiin taasi waxay sidoo kale ka dhigan tahay inaad si firfircoon u doorato oo aad u dhaqan geliso heshiisyadaTilmaamahan waxaan ku soo bandhigi doonnaa fikradaha ugu waxtarka badan adduunka dhabta ah, mashaariicda wax soo saarka FastAPI iyo kaydka ugu wanaagsan ee caanka ah, waxaan isbarbar dhigi doonnaa qaab-dhismeedka mashruuca ugu muhiimsan, waxaanan arki doonnaa sida ay ula falgalaan fikradaha asaasiga ah ee FastAPI sida duritaanka ku-tiirsanaanta, xaqiijinta, async I/O, tijaabinta iyo dejinta.
Sababta qaab-dhismeedka mashruucu aad ugu muhiim yahay FastAPI
Qaab-dhismeed adag ayaa ah laf-dhabarta ka dhigaysa codsiga FastAPI mid la fahmi karo maadaama uu ku korayo cabbirka iyo kakanaantaLa'aanteed, xitaa qaab-dhismeedka leh ergonomics-ka weyn wuxuu si dhakhso ah isu beddelaa tuulmo modules ad-hoc ah, soo dejinta wareegsan iyo macquulka la koobiyeeyay.
Marka laga eego dhinaca injineernimada, qaab-dhismeedku si toos ah ayuu u saameeyaa baaxadda: marka cutubyadu ay kala furfurmaan oo mas'uuliyaduhuna ay cad yihiin, waxaad kala qaybin kartaa adeegyada, soo bandhigi kartaa safafka ama aad si madax-bannaan u cabbiri kartaa qaybaha kala duwan ee nidaamka adigoon wax walba dib u qorin.
Joogteyntu waa guul kale oo weynMarka waddo kasta, qaab-dhismeed kasta iyo qaab-dhismeed kasta uu leeyahay guri la saadaalin karo, horumariyayaashu waxay waqti yar ku lumiyaan raadinta faylasha waxayna waqti badan ku bixiyaan xallinta dhibaatooyinka ganacsiga dhabta ah. Waxa kale oo ay noqotaa mid fudud in la sameeyo dib u eegista koodhka sababtoo ah qof walba wuxuu wadaagaa qaab maskaxeed oo isku mid ah.
Mashruucyada kooxda, qaab-dhismeed joogto ah ayaa si weyn u hagaajiya iskaashigaShaqaale cusub ayaa fahmi kara meesha lagu dhejinayo astaamo cusub, QA waxay ogaan kartaa meelaha saxda ah ee laga galo si loo tijaabiyo, DevOps-na waxay fahmi kartaa qaybaha muhiimka u ah in la furo abka (tusaale ahaan, meesha uu ku nool yahay shayga abka ASGI iyo sida xogta loo xiro).

Mabaadi'da aasaasiga ah ee qaabaynta mashaariicda FastAPI
Kahor intaadan dooran qaab-dhismeedka faylka, waxay kaa caawineysaa inaad ku heshiiso dhowr mabaadi' oo hagi kara go'aan kasta oo qaab-dhismeedka ahFikradahani waxay si isdaba joog ah uga soo muuqdaan saldhigyada furaha FastAPI ee guuleysta.
Kala soocida walaacyada waa tiirka koowaad: ku hay marin-haweedka, adkeysiga, xeerarka ganacsiga iyo koodhka isdhexgalka meelo kala duwan. Dhibcaha dhammaadka waa inay abaabulaan kiisaska isticmaalka, ee ma aha inay ku daraan su'aalaha SQL, wax-ka-beddelka JSON iyo wicitaannada adeegga dibadda dhammaantood hal shaqo oo dheer.
Is-dhexgalku waa tiirka labaadHalkii aad ka isticmaali lahayd hal xirmo oo weyn oo hal-hal ah, u jeedso qaybo yaryar oo diiradda saaraya ama baakado hoose oo daboolaya dhaqanka la xiriira. Tani waxay aad u fududaynaysaa in dib loo isticmaalo qaybo, si gooni ah loo tijaabiyo, ugu dambayntiina loo qaybiyo adeegyo yaryar haddii loo baahdo.
Cirbadaha ku-tiirsanaanta waa xabagta isku xirta qaybahaas iyada oo aan lahayn isku-xidh adagNidaamka ku tiirsanaanta FastAPI wuxuu kuu ogolaanayaa inaad sheegto waxa uu u baahan yahay waddo ama adeeg (kalfadhiga xogta, habaynta, isticmaale la xaqiijiyay, iwm.) oo u ogolow qaab-dhismeedku inuu bixiyo, kaas oo ku habboon in la tijaabiyo oo dib loo isticmaalo.
Imtixaanka laftiisu waa in loola dhaqmaa sidii shuruud heerka koowaad ahHaddii qaab-dhismeedku uu adkeeyo in abka lagu wareejiyo xusuusta, laga gudbo ku-tiirsanaanta oo la gaaro dhammaadka macmiilka tijaabada ah, waxaad ka boodi doontaa tijaabooyinka ama waxaad la dagaallami doontaa qaab-dhismeedkaaga. Qaab-dhismeedka wanaagsan wuxuu ka dhigayaa waxyeellooyinka maxalliga ah iyo waddooyinka laga soo dejin karo imtixaannada.
Laba qaab-dhismeed oo mashruuca FastAPI ah oo awood badan: nooca faylka iyo sifada
Nidaamka deegaanka ee FastAPI waxaad badanaa ka heli doontaa laba qoys oo cad oo qaab-dhismeedyo ah.: mashaariic ay abaabuleen nooca faylka (routers, models, schemas, CRUD) iyo mashaariic ay abaabuleen domain ama feature (auth, users, posts, payments, iwm.). Mid walba wuxuu ku iftiimayaa xaalad ka duwan.
Qaab-dhismeedka ku salaysan nooca faylka (routers, schemas, models, CRUD)
Habka nooca faylka wuxuu muujinayaa inta tusaalooyin rasmi ah iyo casharro ah oo soo bandhigaya FastAPIWaxaad kooxeysaa koodhka iyadoo loo eegayo doorkiisa farsamo: lakabka marin-haweedka, qaababka pydantic, moodooyinka xogta, hawlgallada CRUD, adeegyada korontada iyo wixii la mid ah.
Qaab-dhismeed yar laakiin macquul ah ayaa sidan u ekaan kara (loo soo gaabiyay si loo caddeeyo):
Qaab-dhismeedka tusaalaha ah: .├── app
│ ├── __init__.py
│ ├── main.py # FastAPI app initialization
│ ├── dependencies.py # shared dependencies
│ ├── routers
│ │ ├── __init__.py
│ │ ├── items.py # endpoints for items
│ │ └── users.py # endpoints for users
│ ├── crud
│ │ ├── item.py # item CRUD
│ │ └── user.py # user CRUD
│ ├── schemas
│ │ ├── item.py # pydantic models for items
│ │ └── user.py # pydantic models for users
│ ├── models
│ │ ├── item.py # ORM models for items
│ │ └── user.py # ORM models for users
│ ├── external_services
│ │ ├── email.py # email provider client
│ │ └── notification.py # push / notification client
│ └── utils
│ ├── authentication.py
│ └── validation.py
├── tests
│ ├── test_main.py
│ ├── test_items.py
│ └── test_users.py
├── requirements.txt
└── README.md
Qaabkan, buug kasta oo heer sare ah ayaa hoos yimaada app/ waxay leedahay mas'uuliyad keli ah. Tusaale ahaan, routers/ wuxuu qeexayaa meelaha laga galo HTTP, schemas/ waxay ku dhawaaqdaa qaababka gelinta/soo-saarka iyo models/ matalaan jadwalada xogta.
Qaab-dhismeedkani wuxuu u muuqdaa mid si aad ah ugu shaqeeya adeegyada yaryar ilaa kuwa dhexdhexaadka ah ama adeegyada yaryar.. Domain-ku badanaa waa mid cidhiidhi ah oo ku filan in kala qaybintu ay ku timaado door farsamo aysan soo saarin is jiidjiid. Inta badan dhibcaha ugu dambeeya waxay isticmaalaan isla noocyada xaddidan, waxaana jira kooxo yar oo isku mar taabanaya koodhka.
Faa'iidooyinka muhiimka ah ee qaab-dhismeedka nooca faylka waxaa ka mid ah culays garasho oo aad u hooseeya oo loogu talagalay kuwa bilowga ah iyo geed buugeed oo si dhow ula socda dukumentiyada FastAPI. Qof baranaya qaab-dhismeedka, oo arkaya qaab-dhismeedka u heellan routers/ gal iyo a schemas/ Faylka badanaa wuxuu dareemaa mid dareen badan marka loo eego boodboodka tooska ah ee baakadaha domain-ku wado.
Qaab-dhismeedka sifada ama module-ku-saleysan ee hoos yimaada src/
Marka mashaariicdu ay u koraan inay noqdaan monoliths oo leh domains badan, qaabka nooca faylka ayaa bilaabmaya inuu soo baxoWaxaad heleysaa buug-yareyaal waaweyn sida routers/ oo leh daraasiin faylal ah, soo dejin iskutallaab ah oo isku dhafan, iyo macquul ganacsi oo ku kala firirsan baakadaha aan la xiriirin.
Beddelka si fiican u miisaamaya waa qaab-dhismeedka ku salaysan sifooyinka, ama qaab-dhismeedka domain-ku-saleysan,Halkan waxaad ku dhejisaa dhammaan koodhka domain gaar ah hal xirmo hoose: waddooyin, jaantusyo, moodello, adeegyo, habayn iyo ka-reebitaanno gaar ah oo module ah.
Qaab-dhismeed wakiil ah oo ay dhiirigelisay kaydka ugu wanaagsan ee caanka ah wuxuu u eg yahay sidan:
Geedka faylka ee wakiilka ah: fastapi-project
├── alembic/
├── src
│ ├── auth
│ │ ├── router.py # auth endpoints
│ │ ├── schemas.py # pydantic models
│ │ ├── models.py # DB models
│ │ ├── dependencies.py # auth-specific dependencies
│ │ ├── config.py # local configs
│ │ ├── constants.py # auth error codes / constants
│ │ ├── exceptions.py # auth-specific exceptions
│ │ ├── service.py # business logic
│ │ └── utils.py # helpers
│ ├── aws
│ │ ├── client.py
│ │ ├── schemas.py
│ │ ├── config.py
│ │ ├── constants.py
│ │ ├── exceptions.py
│ │ └── utils.py
│ ├── posts
│ │ ├── router.py
│ │ ├── schemas.py
│ │ ├── models.py
│ │ ├── dependencies.py
│ │ ├── constants.py
│ │ ├── exceptions.py
│ │ ├── service.py
│ │ └── utils.py
│ ├── config.py # global configs
│ ├── models.py # shared DB models
│ ├── exceptions.py # shared exceptions
│ ├── pagination.py # reusable pagination logic
│ ├── database.py # DB connection & session management
│ └── main.py # FastAPI app factory / entry point
├── tests
│ ├── auth
│ ├── aws
│ └── posts
├── templates
│ └── index.html
├── requirements
│ ├── base.txt
│ ├── dev.txt
│ └── prod.txt
├── .env
├── logging.ini
└── alembic.ini
Adduunkan, src/ waa meesha ugu sarreysa ee geedka codsiga gudahaDomain kasta, sida auth or posts, waxay noqotaa ku dhawaad adeeg yar: waxay wadataa router-keeda, jaantusyada, moodooyinka, joogtada ah, noocyada khaladaadka iyo lakabka adeegga ganacsiga.
Faa'iidada ugu weyn waa deegaanka isbeddelka: marka aad ku darto sifa cusub posts, aad dhif u tahay inaad taabato xirmo kasta oo aan xiriir la lahayn. Tijaabaduhu waxay sidoo kale la noolaan karaan astaamahooda (tusaale ahaan hoos tests/posts/), taas oo dhiirigelisa daboolid sare.
Qaab-dhismeedkani wuxuu si gaar ah ugu habboon yahay codsiyada monolithic-ga ah ee leh domains iyo kooxo badan, halkaas oo aad rabto inaad taageerto shaqada barbar socota oo aad yareyso isku dhacyada isku-dhafka ah. Waxa kale oo ay si fiican ula shaqeysaa fikradaha naqshadeynta ee domain-ku-saleysan sida xaaladaha xaddidan iyo isku-darka.

Doorashada qaabka saxda ah ee mashruucaaga FastAPI
Kala doorashada nooca faylka iyo qaab-dhismeedka ku salaysan sifooyinka maaha mid ku saabsan sax iyo khalad, laakiin waa ku saabsan isku-darka qaab-dhismeedkaaga iyo filashooyinkaaga kobaca.Qalab yar oo gudaha ah oo leh dhawr dhibcood oo keliya kama faa'iideysan doono qaab-dhismeedka domainka ee faahfaahsan.
Adeegyada yaryar iyo API-yada cidhiidhiga ah, qaabka nooca faylka badanaa waa ka fudud yahayAdeeg kastaa wuxuu inta badan diiradda saaraa mas'uuliyad keliya (API biil ah, diraha ogeysiiska, adeegga yar ee warbixinta), horumariyayaashuna waxay horeyba si dareen leh u yaqaaniin meesha ay dhigayaan waddooyin ama qorsheyaal cusub.
Wixii monoliths-ka waaweyn, kala qaybinta domain ahaan ku dhawaad had iyo jeer way ku guulaysataa mustaqbalka fog.Marka aad haysato modules-yo loogu talagalay profiles-ka, rukumada, macluumaadka, lacagaha, falanqaynta iyo waxyaabo kaloo badan, gelinta router- kasta hal buug ayaa noqonaysa mid qasan. Kooxayntu waxay ka dhigaysaa qayb kasta oo nidaamka ah mid iskeed u jirta.
Sidoo kale tixgeli qaab-dhismeedka kooxdaadaHaddii hal koox oo yar ay leedahay saldhigga koodhka oo dhan, joogteynta ayaa laga yaabaa inay fududahay in la ilaaliyo iyadoo la adeegsanayo qaab-dhismeed fudud. Haddii kooxo badan ay wadaagaan hal-ku-dhegga oo mid walba uu leeyahay aag domain, qaab-dhismeed ku salaysan astaamo ayaa u oggolaanaya inay si dhakhso leh u socdaan iyagoon midba midka kale ku tallaabsan faraha.
Wax kasta oo aad doorato, joogteynta ayaa ka muhiimsan qaabka saxda ah ee geedkaBeddelka qaab-dhismeedka bartamaha mashruuca waa mid xanuun badan, sidaa darteed waqti hore oo aad fikirto oo aad qorto hage gaaban oo qaab gudaha ah ayaa faa'iido yeelan doona hadhow.
Fahmidda FastAPI lafteeda: waxaad dhisayso
Si aad u qaabayso qaab-dhismeed macquul ah waxaad u baahan tahay qaab maskaxeed oo cad oo ku saabsan waxa FastAPI dhab ahaantii kuu qabatoAsal ahaan, FastAPI waa qaab-dhismeed shabakadeed oo ASGI ah oo diiradda saaraya dhisidda HTTP APIs oo leh Python 3.7+ iyadoo la adeegsanayo tilmaamo nooca ah.
FastAPI waxay si weyn ugu tiirsan tahay Pydantic si loo xaqiijiyo xogta iyo isku-dubaridkaWaxay bixisaa wax ka badan goobo fudud oo "loo baahan yahay iyo kuwa ikhtiyaariga ah"; waxaad si toos ah ugu muujin kartaa xaddidaadyo iyo isbeddello qani ah moodooyinkaaga.
Maadaama nidaamka OpenAPI uu si toos ah uga soo jeedo meelaha ugu dambeeya iyo moodooyinkaaga, FastAPI waxay sidoo kale soo saartaa dukumentiyo is-dhexgal ahSanduuqa waxaad ka heleysaa Swagger UI /docs iyo ReDoc at /redoc, kuwaas oo ah kuwo qiimo leh marka lala shaqeynayo horumariyayaasha hore ama isku-darka dhinacyada saddexaad.
Hooska, FastAPI wuxuu ku shaqeeyaa dusha sare ee server-yada ASGI sida UvicornTani waxay u oggolaanaysaa app-kaagu inuu si hufan u maareeyo xiriiro badan oo isku mar ah, wuxuuna awood u siinayaa sifooyinka sida isku xirka WebSocket ee cimri dheer leh iyada oo aan lahayn xaflad dheeraad ah.
FastAPI sidoo kale si cad ayay uga hadashay codsiyada iyo jawaabahaBarta dhammaadka ah waa shaqo Python caadi ah (isku-dubarid ama isku-dubarid la'aan) oo lagu qurxiyey @app.get, @app.post iyo asxaabta, iyagoo helaya xogta wadada/su'aalaha/jirka iyo soo celinta jawaab, badanaa qaab dict ama qaab Pydantic ah.
Async vs sync: sida waxqabadku ula falgalo qaab-dhismeedka
FastAPI waxaa marka hore loogu talagalay qaab-dhismeed async ah, laakiin waxay taageertaa labada dhammaadka async iyo syncFahmidda sida ay gudaha u dhaqmaan waxay ku wargelin doontaa sida aad u qaabayso adeegyada, u doorato macaamiisha iyo qaybaha qaab-dhismeedka ee maaraynta I/O.
Markaad sheegto a async def wadada, FastAPI si toos ah ayay ugu shaqeysaa wareegga dhacdadaQaab-dhismeedku wuxuu u maleynayaa in hawlgal kasta oo muddo dheer socda oo gudaha ah uu noqon doono kuwo aan xannibayn oo la filayo, sida darawal xog ururin async ah ama macmiil HTTP ah oo ku dhisan asyncio.
Haddii aad si kama' ah u sameyso wicitaano xannibaya (tusaale ahaan) time.sleep(), wareegyada culus ee CPU ama maktabadaha gaabiska ah ee sameeya isku-xirka shabakadda I/O si isku mid ah) gudaha waddooyinkaas async-ka ah, si wax ku ool ah ayaad u qaboojin doontaa wareegga dhacdadaCodsiyada kale lama farsamayn doono ilaa hawlgalkaasi dhammaado, taasoo jabinaysa ujeeddada async.
Jidadka isku-dhafka ah waxay u dhaqmaan si kala duwan: FastAPI waxay ku fulisaa barkad dun ahJoojinta shaqada ee waddooyinkaas waxay haysaa oo keliya mawduuc shaqaale, ee ma aha wareegga dhacdada oo dhan, sidaa darteed adeeguhu wali wuu aqbali karaa codsiyada cusub. Sidan ayay FastAPI u ahaanaysaa mid dabacsan marka ay tahay inaad ku tiirsanaato maktabadaha isku-dhafan.
Mabaadi'da isku midka ah ayaa khuseeya ku tiirsanaantaLabada ku-tiirsanaanta isku-dhafka ah iyo kuwa aan isku-dhafka ahaynba waa la taageeraa, laakiin ku-tiirsanaanta isku-dhafka ah waxaa sidoo kale lagu maamulaa barkad duneed. Kaaliyeyaasha yaryar ee aan ahayn I/O badanaa way ka fiican tahay in loo calaamadeeyo inay yihiin kuwo aan isku-dhafanayn si looga fogaado dul-saarka iyo xaddidaadaha dunta marka aan loo baahnayn.
Culayska shaqada ee ku xiran CPU waa sheeko gooni ahHadday tahay inaad ku socodsiiso iyaga sync ama async gudaha habka, GIL (Global Interpreter Lock) waxay la macno tahay in hal dun oo keliya uu fulinayo Python bytecode markiiba. Hawlaha sida habaynta xogta culus, beddelka sawirka ama soo-jeedinta ML, tixgeli inaad shaqada u rarto shaqaalaha habab kala duwan ama saf dibadda ah.
Xaqiijinta iyo qaabaynta xogta iyadoo la adeegsanayo Pydantic
Pydantic waa matoorka ka dambeeya astaamaha xaqiijinta iyo taxanaha FastAPIWaxay bixisaa wax ka badan goobo fudud oo "loo baahan yahay iyo kuwa ikhtiyaariga ah"; waxaad si toos ah ugu muujin kartaa xaddidaadyo iyo isbeddello qani ah moodooyinkaaga.
Kiisaska isticmaalka caadiga ah waxaa ka mid ah dhererka xarigga ee la xaqiijiyay, tirada tirooyinka, qaababka iimaylka ama qaab-dhismeedka isku dhafanMoodooyinku waxay sidoo kale ku tiirsanaan karaan enums, tibaaxaha caadiga ah, ansixiyeyaasha gaarka ah iyo qalab kale oo badan si loo nadiifiyo wax-soo-saarka ka hor inta aysan gaarin macquulka ganacsigaaga.
Qaab awood leh ayaa ah in la qeexo qaab aasaasi ah oo loogu talagalay mashruucaagaAdigoo ka dhaxlaya dhammaan qorshayaasha hal fasal oo saldhig ah, waxaad mideyn kartaa hab-dhaqanka jarista iskutallaabta ah sida qaabka taxanaha taariikhda, hababka adeegsiga ee soo celiya oo keliya qiimayaasha badbaadada leh ee JSON, ama calamada habaynta caadiga ah.
Pydantic waa mid aad ugu fiican xaqiijinta xogta saafiga ah, laakiin waxba kama oga xogtaada ama adeegyada dibadda.Haddii xeerarkaagu ay ku xiran yihiin su'aal (sida hubinta in aqoonsi isticmaale uu jiro, ama iimaylku uu yahay mid gaar ah), habka ugu wanaagsan ee caadiga ah waa in xaqiijintaas loo raro ku-tiirsanaan halkii laga rari lahaa ansaxiyeyaasha qaabka Pydantic.
Sidaas darteed, waxaad ku haynaysaa qorshayaasha kuwo caddaynaya oo aad dib u isticmaali kartaa xaqiijinta dhammaan dhinacyada kala duwanKu-tiirsanaantu waxay soo qaadan kartaa hay'ad, waxay dhaqan gelin kartaa xeerarka gelitaanka waxayna natiijada ku dari kartaa jidka, halka FastAPI ay kaydinayso natiijadeeda codsi kasta si looga fogaado shaqo isku mid ah marka isku-tiirsanaan la isticmaalo dhowr jeer.
Ku tiirsanaanta oo ah dhismo dhisme nadiif ah
Nidaamka duritaanka ku-tiirsanaanta FastAPI ma aha oo kaliya sonkorta isku-dhafka ah ee xuduudaha; waa qalab dhisme oo asaasi ah.Isticmaalka saxda ah ee ku-tiirsanaanta waxay kuu ogolaanaysaa inaad la wadaagto macquulka, ku dhaqan geliso isbeddellada aan caadiga ahayn iyo inaad waddooyinku aad u yaraadaan oo muujiyaan.
Tusaalooyinka caadiga ah waxaa ka mid ah bixiyeyaasha kalfadhiyada xogta, rarista habaynta, kaaliyayaasha xaqiijinta iyo falanqeeyayaasha boggaHalkii aad gacanta ku furi lahayd oo aad ku xidhi lahayd kalfadhiyada ama aad ku celin lahayd xuduudaha bog-qorista meel kasta, waxaad hal mar ku dhawaaqi lahayd inay yihiin ku-tiirsanaan oo aad dib u isticmaali lahayd.
Talo naqshadeed oo qarsoon laakiin muhiim ah ayaa ah in ku tiirsanaanta loo kala jaro cutubyo yaryar oo la isku dari karoHalkii laga isticmaali lahaa hal weyn get_current_user_with_all_checks shaqada, waxaa laga yaabaa inaad leedahay ku-tiirsanaan gaar ah oo ku saabsan falanqaynta JWT, rarista isticmaalaha, xaqiijinta in akoonku firfircoon yahay iyo hubinta in isticmaaluhu leeyahay kheyraad la bixiyay.
Sababtoo ah FastAPI waxay kaydisaa natiijooyinka ku-tiirsanaanta hal codsi gudaheed, qorista iyaga waa raqiisHaddii saddex ku-tiirsanaan oo kala duwan ay dib u isticmaalaan caawiye heer hoose ah (tusaale ahaan, falanqaynta sheegashooyinka JWT), caawiyehaas wuxuu shaqeyn doonaa hal mar oo keliya codsi kasta xitaa haddii la tixraaco dhowr jeer.
Marka la naqshadeynayo waddooyinka, magacaabista waddooyinka waxay kaa caawin kartaa ama carqaladeyn kartaa dib-u-isticmaalka ku-tiirsanaantaTusaale ahaan, haddii dhowr dhibcood oo dhammaad ah ay xaqiijiyaan in a profile_id jira, isticmaalka isla magacaas si joogto ah ugu jira xuduudaha wadada waxay sahlaysaa in lagu xidho hal ku-tiirsanaan oo ku tiirsan profile_id, halkii laga ikhtiraaci lahaa noocyo badan oo kala duwan sida creator_id kuwaas oo leh macno isku mid ah.
Amniga, xaqiijinta iyo oggolaanshaha dhismahaaga
Ammaanku waa mid ka mid ah meelaha uu qaab-dhismeed cad si dhakhso ah u faa'iido.Isku darka macquulka xaqiijinta si toos ah wadooyinka aan kala sooca lahayn waxay adkeyneysaa in la baaro xeerarka gelitaanka iyo in si kama' ah loo soo bandhigo xogta.
Qaab caadi ah oo ku jira qaababka ku salaysan sifooyinka waa in la yeesho auth xirmo leh router-keeda, jaantusyada, lakabka adeegga iyo waxyaabaha ka reebanModule-kaas wuxuu qaban doonaa diiwaangelinta isticmaalaha, socodka galitaanka, soo saarista calaamadaha iyo xaqiijinta, wuxuuna qeexi karaa ku tiirsanaanta sida get_current_user in modules-yada kale ay soo dejiyaan.
Xirmadaas ogolaanshaha ah waxaad ku taageeri kartaa farsamooyin badan oo xaqiijin ah, sida OAuth2 oo leh furaha sirta ah iyo calaamadaha qofka sita, furayaasha API ee wicitaanada adeegga-ilaa-adeeg, ama calaamadaha ku salaysan JWT ee API-yada aan gobolka lahayn. fastapi.security adeegyada korontada ayaa kaa caawinaya inaad ku sharaxdo socodkan OpenAPI sidoo kale.
Waa muhiim in la kala saaro aqoonsiga (cidda isticmaaluhu yahay) iyo oggolaanshaha (waxa loo oggol yahay inay sameeyaan)Qaab-dhismeedkaagu waa inuu caddeeyaa meesha hubinta ogolaanshaha ay ka jirto: tusaale ahaan, heer adeeg ama siyaasad gaar ah halkii laga isticmaali lahaa meel aan rasmi ahayn oo kala firirsan if hadallo ku saabsan waddo kasta.
Markasta oo aad la macaamilayso erayga sirta ah, raac dhaqamada qarsoon ee la aasaasaySirta Hash oo leh algorithm gaabis ah oo milix leh sida bcrypt ama argon2 iyada oo loo marayo maktabado sumcad leh, iska ilaali crypto-ka gacanta oo ula dhaqan kaydinta calaamadaha, ilaalinta CSRF iyo amniga gaadiidka (HTTPS) inay yihiin qaybo heer sare ah oo naqshadda ah.
Tijaabinta barnaamijyada FastAPI si wax ku ool ah
Qaab-dhismeedka iyo tijaabintu way is xoojiyaan: qaab-dhismeed nadiif ah ayaa si dabiici ah u horseeda kood la tijaabin karo oo dheeraad ahIyada oo la adeegsanayo FastAPI waxaad ku tijaabin kartaa dhowr heer, laga bilaabo tijaabooyinka cutubyada saafiga ah ee adeegyada ilaa tijaabooyinka isku-dhafka buuxa ee ku dhacaya lakabka HTTP.
Tijaabooyinka cutubyadu waa inay diiradda saaraan qaybo yaryar oo aan waxyeello lahayn: shaqooyin saafi ah, saxayaasha Pydantic, adeegyada ganacsiga ee ka shaqeeya xogta xusuusta. Kuwani waxay u muuqdaan inay aad u dhaqso badan yihiin waana safkaaga difaaca ugu horreeya ee ka dhanka ah dib-u-noqoshada.
Si aad u jimicsato dhibcaha HTTP ee dhabta ah, waxaad isticmaali kartaa macmiilka tijaabada ee ku dhex jira oo ku salaysan Starlette ama macaamiisha casriga ah ee async sida httpxFikraddu waa inaad soo dejiso abkaaga, aad ka gudubto ku-tiirsanaanta sida loogu baahdo (tusaale ahaan, inaad ku durto kalfadhi xog-ururin tijaabo ah) oo aad dirto codsiyo adigoon socodsiin server dibadeed.
Haddii aad la shaqeyneyso darawallada xogta async ama isku-darka kale ee async, waxaa mudan in la sameeyo macmiil tijaabo async ah laga bilaabo bilowgaIsku darka qaababka tijaabada isku-dhafka ah iyo kuwa aan isku-dhafka ahayn ee dambe waxay badanaa keentaa arrimo jahwareer leh oo ku saabsan wareegga dhacdooyinka kuwaas oo ay adag tahay in laga saxo marka loo eego in si fudud loogu habeeyo hal hab.
Isticmaalka xogta ee imtixaanada ayaa sidoo kale la falgala qaab-dhismeedkaagaIyadoo la leeyahay xarun dhexe database.py module qeexaya warshadaha matoorka iyo kalfadhiga, waxay noqonaysaa mid fudud in la rogo xogta tijaabada, lagu duubo tijaabooyinka macaamil ganacsi ama la isticmaalo qalab yareeya jadwalka inta u dhaxaysa socodka.
Laga bilaabo horumarinta maxalliga ah ilaa dejinta wax soo saarka
Codsiyada FastAPI waa kuwo aan sahlanayn in lagu shaqeeyo gudaha laakiin waxay u baahan yihiin qorsheyn dheeraad ah oo wax soo saar ahQaab-dhismeedka mashruucaagu waa inuu caddeeyaa sida loo sameeyo abka, meesha habayntu ka timaado iyo sida loo sameeyo diiwaangelinta iyo hubinta caafimaadka.
Horumarinta, kooxaha badankood waxay isticmaalaan Uvicorn oo leh dib-u-cusboonaysiin otomaatig ah, caadi ahaan iyada oo loo marayo amar sida uvicorn app.main:app --reload ama, qaabab cusub, fastapi devTani waxay bixisaa wareegyo jawaab celin oo degdeg ah waana mid ku habboon inta lagu celcelinayo.
Wax soo saarka waxaad badanaa rabtaa dejin aad u adag: Shaqaalaha Uvicorn ama Hypercorn oo ay maamulaan kormeere hab-raac ama duubista WSGI/ASGI sida Gunicorn, oo inta badan gadaashiisa wakiil rogaal celis ah (NGINX ama dheelitiriye culays la maareeyey). Hadafku waa in la xakameeyo tirinta shaqaalaha, waqtiyada nasashada iyo dib u bilaabashada quruxda badan, oo ay ku wargeliyaan dhaqamada casriga ah ee DevOps.
Qaabeynta waa in lagu socodsiiyaa doorsoomayaasha deegaanka halkii laga isticmaali lahaa qiimayaal adag oo la calaamadeeyayMaareynta dejimaha Pydantic ama aaladaha la midka ah ayaa kaa caawin kara inaad ku dhawaaqdo fasallada dejimaha ee la qoray oo aad ku shubto bilowga, adigoo meel dhexe ku meelaynaya dhammaan badhamada gaarka u ah deegaanka.
Kahor intaadan wacin wax soo saarka abkaaga oo diyaar ah, hubi dhowr waxyaalood oo muhiim ah: diiwaangelinta qaabaysan, cabbiraadaha aasaasiga ah, natiijooyinka caafimaadka ee ku saabsan nolosha iyo baaritaanka diyaargarowga, xaddidaadaha cabbirka jirka ee macquulka ah, iyo siyaasad cad oo ku saabsan soo bandhigidda dukumentiyada oo keliya deegaannada aan dadweynaha ahayn haddii API-gaaga aan loogu talagalin isticmaalka guud.
Magacaabista, naqshadeynta xogta iyo guurista
Sida aad wax ugu magacowdo moodalladaada iyo faylashaada shaxda waa qayb ka mid ah qaab-dhismeedka mashruucaaga sidoo kaleMagacaabista aan isku dheelitirnayn waa mid ka mid ah siyaabaha ugu dhaqsaha badan ee lagu khaldami karo horumariyayaasha ka shaqeynaya saldhig kood oo aysan abuurin.
Heshiis fudud oo wax ku ool ah ayaa la isticmaali karaa lower_case_snake magacyada jadwalada iyo tiirarka, doorbid magacyada jadwalka keli ah (tusaale ahaan post, post_like, user_playlist) iyo jadwallo la xiriira kooxeed oo leh horgale caadi ah sida payment_ or post_.
Meelaha ku meel gaarka ah, daba-galayaasha sida _at waqtiyada taariikhda iyo _date timir cad si aad wax u caddayso. Inaad halkan ku adkeysato waxay ka hortagtaa ciyaarta qiyaasidda "ma shaambad waqti baa mise taariikh?" marka la akhrinayo jaantusyada ama su'aalaha aan la qorin.
Tahriibadu waxay mudan tahay daryeel gaar ah; waa inay ahaadaan kuwo go'aan leh, la rogi karo oo sharraxaad leh - tixgeli kuwa soo socda dhaqamada socdaalka xogtaKooxo badan ayaa qaata qaab magacyada faylasha socdaalka sida YYYY-MM-DD_slug.py, taasoo sahlaysa in la raadraaco taariikhda oo la fahmo waxa isbeddelay iyada oo aan la akhrin farqiga oo dhan.
Wixii warbixin adag ama jawaabo la isku halleyn karo, ku soo dhawoow xogtaada halkii aad si xad dhaaf ah uga farsamayn lahayd Python.Matoorada casriga ah ee SQL waxay samayn karaan isku-darka, isku-darka iyo dhismaha JSON si ka dhakhso badan CPython, soo celinta qaab-dhismeedka hore loo sameeyayna FastAPI waxay badanaa fududaynaysaa moodooyinkaaga jawaabta.
Qalabaynta, qaabaynta iyo heshiisyada kooxda
Mashruuc si wanaagsan loo qaabeeyey ayaa fudud in la nadiifiyo marka aad qorto qalab lagu dhaqan gelinayo xeerarka qaabkaQaabeeyayaasha koodhka, linters-ka iyo jillaabyada kahor ballan-qaadka ayaa kaa caawinaya inaad diiradda saarto macquulka ganacsiga halkii aad ka doodi lahayd booska bannaan ee dib u eegista koodhka.
Dhawaanahan, qalabka sida Ruff ayaa caan noqday sababtoo ah waxay isku daraan doorar badan hal marHalkii aad isku shaandheyn lahayd adeegyo gaar ah oo loogu talagalay qaabaynta, kala soocidda soo dejinta iyo xinjiraynta, waxaad ku shaqayn kartaa hal qalab oo degdeg ah oo hirgeliya boqolaal sharci oo ku baahsan saldhigga koodhka.
Ku shaqeynta qalabkan iyada oo loo marayo qoraal fudud ama jillaabyo hore loo sii ballan qaaday waxay ka dhigaysaa caqabadda mid hooseysaKoox kastaa uma baahna habayn jillaab oo aad u faahfaahsan, laakiin haysashada ugu yaraan hal amar oo mideeya qaab-dhismeedka koodhka waa guul fudud.
Ugu dambeyntii, ka fiirso inaad ku diiwaangeliso heshiisyadaada gudaha "buug-gacmeed injineernimo" oo gaaban tixraacyadaas hababka horumarinta software-ka ee agile. Sharax sida modules-ka loo magacaabi karo, goorta la abuurayo xirmo domain cusub, sida loo qaabeeyo imtixaanada, iyo qaababka amniga ee waajibka ah. Tani waxay ka hortagtaa in aqoonta ay ku noolaato oo keliya madaxa horumariyayaasha sare.
Naqshadeynta qaab-dhismeedka mashruuca FastAPI waxay runtii ku saabsan tahay in shaqada mustaqbalka laga dhigo mid la saadaalin karo oo caajis ah: marka meel kasta oo cusub, qaab ama adeeg kasta uu leeyahay guri cad, horumariyayaashu si dhakhso ah ayay u dhaqaaqi karaan iyagoon wax la yaab leh samayn, amniga ayaa si fudud loo hubin karaa codsiguna wuxuu u taagan yahay fursad aad uga wanaagsan oo uu ku badbaado kobaca dhabta ah iyada oo aan lagu burburin miisaankiisa.