paint-brush
Ithebula njenge-API? I-Illusions kanye namaqinisonge@truewebber
Umlando omusha

Ithebula njenge-API? I-Illusions kanye namaqiniso

nge Aleksei Kish9m2025/03/05
Read on Terminal Reader

Kude kakhulu; Uzofunda

Umbhali ugomela ngokuthi ukusebenzisa ithebula lesizindalwazi okwabelwana ngalo njengendlela yokuxhumana kwesevisi-kuya-sevisi kuyiphethini ephikisanayo. Nakuba kungase kubonakale kuyisixazululo esisheshayo, kuholela ekuguqulelweni kwekhanda elibuhlungu, ubunikazi obungacacile, kanye nobunzima bokukhula nokuphepha. Kunalokho, i-athikili imela indlela "Yenkontileka Okokuqala", lapho isevisi ngayinye ichaza ngokusemthethweni izindawo zayo zokuhlangana futhi igcine ubunikazi bedatha yayo. Le ndlela ikhuthaza ukuziphendulela okucacile, ukuziphendukela kwemvelo okushelelayo, nokuhlanganiswa okuqinile kuwo wonke amaqembu.
featured image - Ithebula njenge-API? I-Illusions kanye namaqiniso
Aleksei Kish HackerNoon profile picture
0-item
1-item

Isingeniso

Iyini "inkontileka" kumongo wokusebenzelana kwesevisi?

Esimweni samamojula wezinsizakalo ezisebenzisanayo, umbuzo ongenakugwenywa uyavela: Ngabe ukuxhumana kwenzeka ngamiphi imithetho ? Emikhiqizweni ye-IT, "inkontileka" imelela ukuqonda okusemthethweni kokuthi iyiphi idatha egeleza phakathi kwezinhlelo nokuthi idluliselwa kanjani . Lokhu kuhlanganisa ifomethi yedatha (i-JSON, i-Protobuf, njll.), izakhi zesakhiwo (izinkambu, izinhlobo zedatha), iphrothokholi yokuxhumana (REST, gRPC, olayini bemilayezo), nokunye ukucaciswa.


Inkontileka iqinisekisa ukuvuleka (wonke umuntu uyazi ukuthi yini eyamukelwe futhi ithunyelwa), ukubikezela (singabuyekeza inkontileka futhi sigcine izinguqulo), nokwethembeka (isistimu yethu ngeke ihluleke uma senza izinguquko eziphethwe kahle).

Kungani abantu bevame ukukhetha itafula kusizindalwazi njengokuthi “inkontileka.”

Empeleni, nakuba wonke umuntu ekhuluma ngama-microservices, “izinkontileka” nama-API, sivame ukubona abantu besebenzisa le ndlela: “Kungani ungadali ithebula okwabelwana ngalo kusizindalwazi esikhundleni sokwakha ama-API?”


  • Umkhuba womlando noma wenhlangano: Uma yonke into ibilokhu igcinwe ohlelweni olulodwa lwe-DB ngaphakathi kwenkampani eyodwa, kungani uphinde usungule isondo?


  • Isimo sengqondo "sokulungisa ngokushesha": Sizobhala, uzofunda ngaphandle kokusetha imithetho yokugunyaza nokuklama ukucaciswa kwe-API.


  • Impikiswano "yedatha enkulu": Uma usebenza ngamashumi noma amakhulu amagigabhayithi edatha, ukudluliselwa okuqondile kuthebula okwabelwana ngalo kubonakala kulula, kushesha, futhi kunokonga kakhulu, kodwa ekusebenzeni, kudala izinkinga zokukala nokusebenza kanye nezinkinga zobunikazi bedatha.


Ngakho-ke, ngenkathi ukusebenzisa ithebula okwabelwana ngalo ukushintshanisa idatha kungase kubonakale kusebenza kahle futhi kulungiselelwe imiphumela esheshayo, kukhiqiza izinselele ezihlukahlukene zobuchwepheshe nezokuhlela ngokuhamba kwesikhathi. Kodwa-ke, lapho amaqembu ekhetha amathebula okwabelwana ngawo ukuze ashintshisane ngedatha, angase abhekane nezinkinga eziningi phakathi nokuqaliswa.

Kungani “Ithebula Kusizindalwazi” Kungesona Inkontileka (nokuthi Kungani Kuyiphethini Emelene Nalokhu).

Ukushoda Kwesixhumi Esibonakalayo Esichazwe Ngokucacile

Lapho amasevisi exhumana nge-REST/gRPC/GraphQL, anencazelo esemthethweni: I-OpenAPI (Swagger), ama-protobuf schema, noma ama-schema e-GraphQL. Lokhu kuchaza ngokuningiliziwe ukuthi yiziphi izinsiza (amaphoyinti okugcina) atholakalayo, yiziphi izinkambu ezilindelekile, izinhlobo zazo, kanye namafomethi esicelo/empendulo. Uma 'itafula okwabelwana ngalo' lisebenza njengenkontileka ayikho incazelo esemthethweni: Ayikho incazelo esemthethweni yenkontileka; i-schema yethebula kuphela (i-DDL) etholakalayo futhi nalokho akubhaliwe kahle. Noma yikuphi ukuguqulwa okuncane kwesakhiwo sethebula (isb, ukwengeza noma ukususa ikholomu, ukushintsha izinhlobo zedatha) kungase kuthinte amanye amaqembu afunda noma abhalele kuleli thebula.

Izinkinga Zokuguqulela Nokuziphendukela Kwemvelo

Ukwenza inguqulo ye-API kuwumkhuba ovamile: Singase sibe ne-v1, v2, njalo njalo, futhi singagcina ukuhambisana okusemuva bese kancane kancane sithuthela amaklayenti ezinguqulweni ezintsha. Kumathebula esizindalwazi, sinemisebenzi ye-DDL kuphela (isb, ALTER TABLE ), ehlanganiswe ngokuqinile nenjini ethile ye-DB futhi edinga ukuphathwa ngokucophelela kokufuduka.


Alukho uhlelo oluphakathi nendawo olungathumela izexwayiso kubathengi mayelana nezinguquko ze-schema ezidinga ukuthi babuyekeze imibuzo yabo. Ngenxa yalokho, kungase kwenzeke amadili “angaphansi kwetafula” : Othile angathumela engxoxweni, “Kusasa, sishintsha ikholomu X ibe ngu-Y”, kodwa asikho isiqinisekiso sokuthi wonke umuntu uzobe elungile ngesikhathi.

Abukho Ubunikazi obucacile

Uma kune-API echazwe ngokucacile, kuyabonakala ukuthi ekabani: isevisi esebenza njengomshicileli we-API. Lapho amaqembu amaningi esebenzisa ithebula lesizindalwazi elifanayo kuba nokudideka mayelana nokuthi ubani ozonquma isakhiwo nokuthi yiziphi izinkambu okufanele zigcinwe nokuthi zichazwa kanjani. Ngenxa yalokho, ithebula lingase libe “impahla yomuntu,” futhi lonke ushintsho luba yimfuno: “Kudingeka sihlole nalelo qembu uma lisebenzisa ikholomu endala!”

Izinkinga Zokulawula Ukuphepha Nokufinyelela

Kunzima ukulandelela ukuthi ubani ongakwazi ukufunda nokubhala etafuleni uma amaqembu amaningi ekwazi ukufinyelela ku-DB. Kukhona ithuba lokuthi izinsiza ezingagunyaziwe zingafinyelela idatha nakuba ibingahloselwe zona. Kulula ukuphatha izindaba ezinjalo nge-API: Ungalawula amalungelo okufinyelela (ubani ongabiza ukuthi yiziphi izindlela), sebenzisa ukufakazela ubuqiniso nokugunyazwa, futhi ugade ukuthi ubani obize ini. Ngetafula, kuyinkimbinkimbi kakhulu.

Ukuncika Esakhiweni Sangaphakathi

Noma yikuphi ukuguqulwa kwangaphakathi kudatha (ukuhlela kabusha izinkomba, ukwahlukanisa ithebula, ukushintsha i-DB) kuba inkinga yomhlaba wonke. Uma ithebula lisebenza njengesixhumi esibonakalayo somphakathi, umnikazi akakwazi ukwenza izinguquko zangaphakathi ngaphandle kokufaka engozini bonke abafundi nababhali bangaphandle.

Amaphuzu Obuhlungu kanye Nezinkinga Ezivamile Ekuziphatheni

Ukuxhumanisa Izinguquko

Lesi isici esibuhlungu kakhulu: Umuntu wenza kanjani ngokwazisa elinye iqembu ukuthi uhlelo luzoshintsha ngakusasa?

  • Isimo esiyimpumelelo sokubuyekeza inguqulo yethebula: Umnikazi udala ithebula elisha eline-schema esibuyekeziwe esihambisana nesidala. Uhlobo oludala luhlala lufinyeleleka kubathengi bamanje futhi umnikazi ubathumelela umlayezo othi, “Isakhiwo esisha siyatholakala; hlola imibhalo kanye nezinsuku zokugcina. Sicela uthuthe kuyilapho zikhona zombili lezi zinguqulo.”


  • Nokho, esimweni se-OLAP noma ngamavolumu amakhulu edatha, ukugcina amathebula amabili ahambisanayo akuwona umsebenzi ongatheni. Kufanele futhi unqume ukuthi ungayisusa kanjani idatha isuka komdala uyiyise ku-schema esisha. Lokhu ngezinye izikhathi kungadinga isikhathi sokuphumula esihleliwe noma ingqalasizinda eyinkimbinkimbi kakhulu. Le nqubo yethula kokubili ubungozi nomsebenzi owengeziwe.

Izinkinga Zobuqotho Bedatha

Uma amaqembu amaningi esebenzisa ithebula okwabelwana ngalo ukuze akhethe futhi abuyekeze idatha ebalulekile, ingaba kalula “inkundla yempi.” Umphumela uba ukuthi ingqondo yebhizinisi igcina ihlakazekile kumasevisi ahlukene, futhi akukho ukulawulwa okumaphakathi kobuqotho bedatha. Kuba nzima kakhulu ukwazi ukuthi kungani inkambu ethile igcinwa ngendlela ethile, ubani ongayibuyekeza, futhi kwenzekani uma ishiywa ingenalutho.

Ukulungisa iphutha kanye nezinselele zokuqapha

Ngokwesibonelo, ake sithi itafula liyaphuka: Ake sithi, kunedatha embi noma othile othathe ilokhi emigqeni ethile ebalulekile. Ukuhlonza umthombo wenkinga ngokuvamile kungadinga ukubuza lonke iqembu elinokufinyelela kwe-DB ukuze linqume ukuthi yimuphi umbuzo obangele inkinga. Ngokuvamile akubonakali: Lokhu kusho ukuthi kungenzeka ukuthi umbuzo weqembu elilodwa ukhiye isizindalwazi, kanti umbuzo welinye iqembu ukhiqiza iphutha elibonakalayo.

Ukwehluleka kwenodi eyodwa kudonsela phansi wonke umuntu.

Isizindalwazi esabiwe siyiphuzu elilodwa lokwehluleka. Uma yehla, khona-ke izinkonzo eziningi zizokwehla nayo. Uma isizindalwazi sinezinkinga ngokusebenza ngenxa yemibuzo enzima yesevisi eyodwa, wonke amasevisi ahlangabezana nezinkinga. Kumodeli enama-API acacile kanye nobunikazi bedatha, ithimba ngalinye liyizingcweti zokutholakala nokusebenza kwesevisi yalo, ngakho ukwehluleka engxenyeni eyodwa akusabalalisi kwabanye.

Ukunikeza ikhophi ehlukile yokufunda kuphela akuyixazululi inkinga.

Ukuvumelana okuvamile ukuthi: "Sizokunikeza ikhophi efundwayo kuphela ukuze ukwazi ukubuza ngaphandle kokuthikameze idatha yethu egciniwe." Ekuqaleni, lokho kungase kubhekane nezinkinga ezithile zokulayisha, kodwa:

  • Izinkinga zenguqulo zisekhona. Inkinga enkulu ukuthi, lapho isakhiwo sethebula eliyinhloko sishintsha, isakhiwo se-replica siyashintsha, ngokulibaziseka okuthile.


  • Ukulibaziseka kokuphindaphinda kungabangela izimo zedatha ukuthi zingabikezeli, ikakhulukazi ngamasethi edatha amakhulu.


  • Ubunikazi abukacaci: Ubani ochaza ifomethi, isakhiwo, nemithetho yokusetshenziswa? Isifaniso sisese “ucezu” lwesizindalwazi somunye umuntu.

Ungadizayina Kanjani Ukusebenzisana Kwesevisi (Inkontileka Okokuqala)

Incazelo yenkontileka ecacile.

Izinqubo zesimanje zokuklama (isibonelo, “API Okokuqala” noma “Inkontileka Okokuqala”) ziqala ngencazelo yokusebenzelana esemthethweni. Kusetshenziswa i-OpenAPI/Swagger, protobuf, noma i-GraphQL schemas. Ngale ndlela, kokubili abantu nemishini bayazi ukuthi yiziphi iziphetho ezitholakalayo, yiziphi izinkambu ezidingekayo, nokuthi yiziphi izinhlobo zedatha ezisetshenziswayo.

Isevisi njengomnikazi wedatha

Kusakhiwo se-microservices (noma i-modular), ukucabanga ukuthi isevisi ngayinye ingumnikazi wedatha yayo ngokuphelele. Ichaza ukwakheka, isitoreji, kanye nengqondo yebhizinisi futhi inikeza i-API yakho konke ukufinyelela kwangaphandle kuleyo API. Akekho ongathinta isizindalwazi 'somunye umuntu': iziphetho ezisemthethweni kuphela noma imicimbi. Lokhu kwenza impilo ibe lula noma nini uma kukhulunywa ngezinguquko futhi kuhlale kucaca ukuthi ubani onecala.

Izibonelo Zokusebenzisa

  • I-REST/HTTP: Isevisi ishicilela amaphoyinti okugcina njenge GET /items , POST /items , njll., futhi amakhasimende enza izicelo ngohlelo lwedatha oluchazwe kahle (DTO).


  • Imithetho elandelwayo ye-gRPC / kanambambili: Ku-gRPC/protobuf, isevisi nemilayezo kuchazwa ngokusemthethweni kumafayela we-.proto, futhi izinguquko zenziwa kalula kumafayela we-.proto lapho kuchazwa indlela, isicelo, kanye nempendulo.


  • Okuqhutshwa umcimbi: Isevisi ephethe idatha ishicilela imicimbi kumthengisi efana ne-Kafka noma i-RabbitMQ, futhi ababhalisile bayayidla. Inkontileka lapha yifomethi yomcimbi. Izinguquko zesakhiwo zenziwa ngezihloko ezinguqulo noma imilayezo.

Ukulawula Inguqulo

Kungakhathaliseki ukuthi iyiphi imodeli, kuyenzeka futhi kubalulekile ukusebenzisa ukulawula inguqulo kusixhumi esibonakalayo. Ngokwesibonelo:

  • Ku-REST, sine-/api/v1/… kanye /api/v2/.


  • Nge-gRPC/protobuf, kunezindlela ezinamandla zokusebenzisana emuva/phambili—izinkambu ezintsha, imilayezo, nezindlela zingangezwa ngaphandle kokuphula amaklayenti amadala kuyilapho ezinye zimakwe njengezihoxisiwe.


  • Ezakhiweni eziqhutshwa umcimbi, ungashicilela amafomethi omcimbi amadala namasha ngokuhambisana kuze kube yilapho bonke abasebenzisi befuduka.

Isibopho Esisabalalisiwe

Umgomo obalulekile ukuthi ithimba elingumnikazi wedatha linquma ukuthi liyigcina kanjani futhi liyiphathe kanjani, kodwa akufanele linikeze ukufinyelela okuqondile kokubhala kwamanye amasevisi. Abanye kufanele badlule ku-API esikhundleni sokuhlela idatha yangaphandle. Lokhu kuveza ukusabalalisa kwesibopho okucace kakhudlwana: Uma isevisi A yephukile, kusho ukuthi kuwumthwalo wesevisi A ukuyilungisa hhayi omakhelwane bayo.

Izibonelo Zokusebenzelana Kwesevisi

Ngaphakathi Kwethimba Elilodwa

Uma uthi nhlá, uma yonke into iseqenjini elilodwa, kungani uhlanganisa izinto nge-API? Eqinisweni, ngisho noma unomkhiqizo owodwa ohlukaniswe waba amamojuli, ithebula okwabelwana ngalo lingaholela ezinkingeni ezifanayo.


  • Kungcono ukwakha “i-facade” noma “i-microservice” engumnikazi wethebula elithi `ama-oda`, isibonelo, bese amanye amamojula (njengezibalo) abize le facade/isevisi.


  • Lokhu kugcina isimiso senkontileka sicacile futhi kwenza ukulungisa iphutha kube lula.


Isibonelo, isevisi yama-oda ingumnikazi wethebula lama-oda, futhi isevisi Yokukhokha ayifinyeleli kulelo thebula ngokuqondile - yenza izingcingo eziya ekugcineni kwesevisi yama-oda ukuze ithole imininingwane ye-oda noma imake i-oda njengelikhokhelwe.

Phakathi Kwamaqembu Amabili

Ezingeni eliphezulu, lapho amaqembu amabili noma ngaphezulu anesibopho sezindawo ezihlukene, izimiso zihlala zifana. Ngokwesibonelo:

  • Ithimba A linesibopho sesevisi yekhathalogi yomkhiqizo equkethe ulwazi mayelana nento ngayinye (inani, ukutholakala, izimfanelo).


  • Ithimba B linakekela insizakalo yenqola yokuthenga.


Uma Ithimba B libuza ngokuqondile ithebula elithi “Ikhathalogi” leThimba A, noma yiziphi izinguquko ze-schema zangaphakathi kokuthi A (isb., ukwengeza izinkambu, ukushintsha ukwakheka) kungase kuthinte Ithimba B.


Indlela efanele ukusebenzisa i-API: Ithimba A lihlinzeka ngamaphoyinti okugcina njenge GET /catalog/items , GET /catalog/items/{id} , njll., futhi Ithimba B lisebenzisa lezo zindlela. Uma u-A ekwazi ukusekela izinguqulo ezindala nezintsha, angakhulula /v2, okunikeza u-B isikhathi sokufuduka.

Izici zenhlangano kanye nezinzuzo

Ukuxhumana Okusobala

Ngenkontileka esemthethweni, zonke izinguquko ziyabonakala: ku-Swagger/OpenAPI, amafayela we-.proto, noma imibhalo yomcimbi. Noma isiphi isibuyekezo singaxoxwa kusengaphambili, sihlolwe kahle, futhi sihlelwe, ngamasu okuhambisana okusemuva njengoba kudingeka.

Ukuthuthukiswa Okusheshayo

Izinguquko kusevisi eyodwa zinomthelela omncane kwezinye. Ithimba akufanele likhathazeke “ngokwephula” omunye umuntu uma liphatha kahle izinkambu ezintsha nezindala noma izindawo zokugcina, liqinisekisa uguquko olushelelayo.

Ukuphathwa kokufinyelela nokuvikeleka

Amasango e-API, ukuqinisekiswa, nokugunyazwa (JWT, OAuth) kuyindinganiso yezinsizakalo, kodwa cishe akunakwenzeka ngetafula okwabelwana ngalo. Kulula ukushuna kahle ukufinyelela (ubani ongabiza ukuthi yiziphi izindlela), gcina amalogi, ulandelele izibalo zokusetshenziswa, futhi ubeke ama-quota. Lokhu kwenza uhlelo luphephe futhi lubikezelwe.

Isiphetho

Ithebula okwabelwana ngalo kusizindalwazi liwumniningwane wokuqaliswa esikhundleni sesivumelwano phakathi kwezinsizakalo ezingabhekwa njengenkontileka. Izinkinga eziningi (inguqulo eyinkimbinkimbi, izinguquko eziyisiphithiphithi, ubunikazi obungacacile, ukuphepha, nezingozi zokusebenza) zenza le ndlela ingasebenziseki ngokuhamba kwesikhathi.


Indlela efanele yiNkontileka Yokuqala okusho ukuchaza ukusebenzisana ngokuklama okusemthethweni nokulandela isimiso sokuthi isevisi ngayinye ihlala ingumnikazi wedatha yayo. Lokhu akusizi nje kuphela ukwehlisa isikweletu sobuchwepheshe kodwa futhi kukhulisa ukubonakala, kusheshisa ukuthuthukiswa komkhiqizo, futhi kunika amandla izinguquko eziphephile ngaphandle kokuzibandakanya ekucimeni umlilo ngokusebenzisa izikimu zesizindalwazi.


Kokubili kuyinkinga yezobuchwepheshe (indlela yokuklama nokuhlanganisa) kanye nenkinga yenhlangano (indlela amaqembu axhumana ngayo futhi alawule ngayo izinguquko). Uma ufuna umkhiqizo wakho ukhule ngaphandle kokubhekana nezimo eziphuthumayo ezingapheli mayelana nezikimu zesizindalwazi, kufanele uqale ukucabanga ngokwezinkontileka kunokufinyelela kusizindalwazi esiqondile.