Eji igurube anwale ibu API

Eji igurube anwale ibu API

Eji igurube Nlele Ibu Ibu API: Okwu mmalite

O nwere ike ịbụ na ị nọbu n'ọnọdụ a: ị na-ede koodu na-eme ihe, njedebe njedebe dịka ọmụmaatụ. Ị na-anwale njedebe njedebe gị site na iji Postman ma ọ bụ Insomnia, ihe niile na-arụkwa ọrụ nke ọma. Ị na-agafe na njedebe ikpeazụ nye onye nrụpụta n'akụkụ ndị ahịa, onye na-eripịa ya API na deploys ngwa. Mana mgbe ahụ, API na-ada mgbe ndị ọrụ jiri ngwa ahụ.

Nke a nwere ike ịbụ ọnọdụ na-akpasu oke iwe ịnọ na ya, ọ bụghị ikwupụta ọnụ ahịa azụmaahịa. Ọ bụ ya mere ndị na-emepụta ngwanrọ ji eme ule dị iche iche na sistemụ ngwanrọ iji hụ na ha na-arụ ọrụ dịka a tụrụ anya ya. API adịghị iche. Tupu ebuga ya, ịkwesịrị ịme opekata mpe ule arụmọrụ yana ule nchekwa.

Enwere ike ịchịkọta ule arụmọrụ n'ime ule arụmọrụ yana ule ibu. Nnwale arụmọrụ bụ ihe ị na-ejikarị Postman ma ọ bụ ehighi ura. Ha na-ahụ na API gị na-arụ ọrụ dịka ị tụrụ anya ya. Nnwale ibu, n'aka nke ọzọ, na-enwe nchegbu karịa ka API gị si arụ ọrụ na ojiji ụwa n'ezie yana ibu kachasị elu, nke ahụ bụkwa ihe akụkọ a gbasara. Ka anyị leba anya n'ule ibu n'ụzọ zuru ezu.

Kedu ihe bụ Nnwale Ibu Ibu API?

Nnwale ibu API bụ ụdị nnwale nke ndị nrụpụta na-eji na-eme ka ibu nkịtị na nke kacha elu na njedebe njedebe. Ụdị nnwale a na-eme ka ndị mmepe nyochaa arụmọrụ ụwa nke API tupu ebuga ya. Ọ na-enyere ha aka ịchọpụta ikike ịrụ ọrụ kachasị nke sistemu, mkpọda ọ bụla ma ọ bụrụ na ọ dị, yana mmebi arụmọrụ. A na-eme ule ibu API site n'ịmepụta ndị ọrụ mebere ya wee jiri ha nwalee ọrụ API n'otu oge. 

Nnwale ibu API na-atụ metrik dị ka oge nzaghachi, ndị ọrụ na-emekọ ihe ọnụ, ọnụego mbubata, ọkwa itinye akụrụngwa, oge dị n'etiti ọdịda(MTBF), oge ọdịda (MTTF), na ndị ọzọ. Enwere ike iji metrik ndị a niile chọpụta etu API si eme nke ọma.

Ụdị Nnwale Ibu Ibu

Enwere ọtụtụ ụdị nnwale ibu, nke ọ bụla nwere ikpe ojiji ya. Ka anyị leba anya n’ụfọdụ n’ime ha.

Nnwale ibu: Nke a bụ isi ụdị ule ibu. A na-eji ya nyochaa arụmọrụ nke sistemu (n'ọnọdụ a, API) n'okpuru ibu nkịtị yana ibu kacha elu tụrụ anya.

Nnwale nrụgide: A na-eji nke a nyochaa arụmọrụ nke sistemụ n'okpuru ibu dị oke arọ. Ebumnuche nke ule a bụ ịhụ ma sistemụ na-agbake mgbe ọdịda gasịrị, yana ogologo oge ọ na-ewe iji mee ya. A na-ebulikarị ibu ahụ nwayọ nwayọ ruo mgbe ọ gafere ikike nke sistemụ.

Nnwale Spike: Nke a dị ntakịrị na nnwale nrụgide, belụsọ na a na-etinye ibu dị arọ na mberede, na-emegide iji nwayọọ nwayọọ na-ebuli ya elu. Ụdị ule a na-anọchi anya ihe na-eme ma ọ bụrụ na enwere mmụba mberede na ọnụọgụ ndị ọrụ ma ọ bụ ndị ọbịa gị, ma ọ bụ mgbe enwere mwakpo DDOS na sistemụ gị.

Nnwale imi: Nnwale a adịghị ka ndị ọzọ dị n'elu. Ọ na-etinye sistemụ gị n'okpuru 80% (ma ọ bụ ebe ahụ) nke ibu nkịtị wee hapụ ya ka ọ na-agba ọsọ ogologo oge, kwuo awa 12 ruo 14. Ụdị ule a na-ekpebi otú usoro a pụrụ ịdabere na ya ka oge na-aga.

Ibu Ibu Iji igurube na-anwale API gị

Ndị nrụpụta nwere ohere dị iche iche maka ịnwale ibu API ha. Ụfọdụ ngwaọrụ nnwale ibu a na-ahụkarị bụ Gatling, JMeter na igurube. Anyị ga-elekwasị anya na igurube n'isiokwu a.

Igurube bụ ngwa nyocha ibu ihe mepere emepe nke sitere na Python nke ụlọ ọrụ ndị kachasị dị ka Google, Microsoft na Egwuregwu Riot ji nwalee API ha. N'ime edemede a, anyị ga-egosi otu esi ebule ule API. 

Maka nkuzi a, m ga-eji Flask mepụta API dị mfe. Ị nwere ike iso m ma ọ bụ mepụta API gị na Node, ma ọ bụ usoro ọ bụla ị nwere mmasị na ya.

chọrọ

Python 3

Ntọala & nwụnye

Nke mbụ, ịkwesịrị ịtọlite ​​ebe obibi mebere na PC gị ka ị ghara imebi gburugburu Python zuru ụwa ọnụ gị. Iji mee nke ahụ, mee iwu ndị a. Rịba ama na iwu ndị a na-emetụta ọnụ ahịa Windows.

$ mkdir oru ngo

$ cd /d ụzọ\ga\project

$ python -m nke ọma

$ venv\Scripts rụọ ọrụ

 

Mbụ, anyị kere a oru ngo ndekọ. Mgbe ahụ, anyị gbanwere ndekọ anyị ugbu a ka ọ bụrụ oru ngo. Anyị meziri ma rụọ ọrụ ebe obibi maka Python n'ime ndekọ ahụ. 

Ugbu a, anyị ga-aga n'ihu na ịwụnye karama(anyị ga-eji ya na-emepụta njedebe nke a ga-anwale ibu) na Igurube onwe ya. 

 

Iji tinye Flask, gbaa ọsọ. Gbaa mbọ hụ na ị nọ na oru ngo ebe i kere mebere gburugburu.

$ pip tinye flask

 

Iji tinye igurube, gbaa ọsọ

$ pip tinye igurube

 

Ozugbo emechara nke ahụ, pịnye iwu ndị a. Jide n'aka na ị nọ n'ime gị oru ngo ndekọ mgbe ị na-eme nke a.

$ oyiri nul __init__.py

$ mkdir ngwa

$ copy nul app\app.py

$ oyiri nul ngwa\__init__.py

 

Iwu a na-emepụta ụfọdụ faịlụ nke anyị ga-eji mepụta ebe njedebe anyị site na iji Flask. Ị nwekwara ike ịmepụta faịlụ ndị a site na iji ihe nchọgharị faịlụ gị n'ụzọ. Ma gịnị bụ ihe ọchị na nke ahụ? Ozugbo ịmechara nke ahụ, detuo koodu dị n'okpuru n'ime ngwa.py

site na mbubata flask, jsonify, arịrịọ

ngwa = Flask (__ aha__)

ụdị ụgbọ ala = [

  {'akara': 'Tesla', 'ihe nlereanya': 'Model S'}

]

 

ụgbọ elu_model = [

  {'akara': 'Boeing', 'ihe nlereanya': '747'}

]

 

@app.route('/ụgbọ ala')

def get_cars():

  laghachi jsonify(car_models)

@app.route('/ụgbọ elu')

def get_planes():

  laghachi jsonify(plane_models)

ọ bụrụ __name__ == '__ main__':

    app.run(debug=Eziokwu)  

 

Koodu dị n'elu nwere usoro nweta_ụgbọ ala eji nweta ndepụta nke ụdị ụgbọ ala na ụdị ha, na nweta_ụgbọ elu eji nweta ndepụta nke ụdị ụgbọ elu na ụdị ha. Ka anyị were nwalee njedebe njedebe a, anyị kwesịrị ịgba ọsọ app.py. Iji mee nke ahụ, gbanye iwu dị n'okpuru.

ụzọ $ Python ruo app.py

Ozugbo ịmechara nke ahụ, ị ​​​​ga-ahụ ihe dị ka nke a:

Nnwale ibu API 1

Ọ bụrụ na i detuo URL ahụ site na ọnụ ma pịnye ụgbọala or ụgbọelu mgbe /, ị ga-enwe ike ịhụ data ebe ahụ. Agbanyeghị, ebumnuche anyị bụ iji igurube nwalee njedebe njedebe, ọ bụghị iji ihe nchọgharị. Ya mere, ka anyị mee nke ahụ. Gbaa iwu a na mgbọrọgwụ nke gị oru ngo ndekọ.

 

$ detuo nul locust_test.py

 

Nke a na-emepụta faịlụ 'locust_test.py' na mgbọrọgwụ nke gị oru ngo ndekọ. Ozugbo ịmechara nke ahụ, mepee faịlụ ma mado na koodu dị n'okpuru. Anyị ga-akọwa ya obere oge.

 

mbubata oge

site na ibubata igurube HttpUser, ọrụ, n'etiti

 

Omume onye ọrụ klas (HttpUser):

    wait_time = n'etiti (5, 10)

 

    @ọrụ

    def get_cars(onwe):

        self.client.get('/ụgbọ ala')

    

    @ọrụ

    def get_planes(onwe):

        self.client.get('/ụgbọ elu')

 

Nke a bụ ihe atụ bụ isi nke iji igurube iji nwalee API. Nke mbụ, anyị na-emepụta klas Omume omume, nke enwere ike ịnye aha ọ bụla kwesịrị ekwesị mana ọ ga-agbatịrịrị Onye ọrụ Http. Onye ọrụ Http bụ klaasị na-elekọta instantiating multiple mebere ọrụ ịrụ ọrụ anyị ezipụta na Omume omume klas. 

A na-akọwapụta ọrụ site na iji usoro ịchọ mma @ọrụ ihe ndozi. Anyị nwekwara ọrụ a na-akpọ n'etiti () nke ahụ na-enye anyị ohere ịkọwapụta nsonazụ nke sekọnd ichere tupu anyị arụ ọrụ ọzọ. Ị nwere ike ịhụ na anyị kenyere oke nke 5 ruo 10 maka nke ahụ na koodu anyị. 

Iji mee koodu ahụ, jide n'aka na ị ka nọ na gburugburu mebere gị. Ọ bụrụ na ihe nkesa na-ejere API na-eji nke ahụ emepụtara, mepee ọnụ ọhụrụ, gbanwee ndekọ gị na nke gị. oru ngo ndekọ, ma rụọ ọrụ mebere gburugburu ị mepụtara. Ị nwere ike ịchọta iwu maka ịgbalite gburugburu mebere n'elu. Ugbu a, tinye iwu dị n'okpuru na ọdụ gị.

 

$ igurube -f igurube_test.py

 

Kwesịrị ịhụ ihe dị ka nke a:

Nnwale ibu API 2

Site na ndabara, interface webụ igurube dị na http://localhost/8089. Ọ bụrụ na ịga na webụsaịtị, ị ga-ahụ interface dị ka nke a:

Nnwale ibu API 3

Site na interface ahụ, anyị nwere ike ịkọwa ọnụọgụ ndị ọrụ, ọnụego spawn (ndị ọrụ emepụtara kwa sekọnd), na onye ọbịa. Ị nwere ike nweta adreesị onye ọbịa gị site na ịlele ọnụ ebe ihe nkesa na-agba ọsọ. N'ọnọdụ anyị, ọ bụ na ọdụ ụgbọ mmiri 5000. Mgbe ị pịa Bido inyo, ị ga-ọkọnọ na interface n'okpuru.

Nnwale ibu API 4

Nke a na-egosi gị metrik dị iche iche bara uru dị ka ọnụọgụ arịrịọ ndị dara ada, nkezi oge maka arịrịọ, oge kacha nta maka arịrịọ, arịrịọ kwa sekọnd, na ihe ndị ọzọ. Ozugbo afọ juru gị afọ na ihe ị na-ahụ, ị ​​nwere ike pịa bọtịnụ nkwụsị. 


E wezụga na Statistics tab, e nwere a chaatị dị iche iche tab nke na-egosi ihe ndị ọzọ ọmụma n'ụdị eserese, dị ka foto dị n'okpuru.

E nwere a mkpokọta arịrịọ kwa eserese nke abụọ, eserese oge nzaghachi, na ọnụ ọgụgụ ndị ọrụ graph, niile kpara nkata megide oge. Iji eserese ndị a, ị nwere ike ikpebi ole ndị ọrụ anabatara maka oge nzaghachi edobere, ma ọ bụ ị nwere ike lelee eserese gị maka oge nzaghachi mgbe niile n'agbanyeghị ọnụ ọgụgụ ndị ọrụ na-abawanye, yana nghọta ndị ọzọ dị ka nke ahụ. Ọ bụrụ na ịchọrọ ịkekọrịta ndị a stats ya na onye ọzọ, ị nwere ike ibudata akụkọ sitere na Budata data taabụ.

Iji mechie...

Nleba ule API gị bụ ọrụ dị oke mkpa na usoro mmepe gị, yabụ gbaa mbọ hụ na etinyere ya na okirikiri imewe gị. Site n'ụzọ, ị nwekwara ike na-ebu ndị ọzọ ibu ule ụdị site na-agbanwe agbanwe ụkpụrụ maka ọnụ ọgụgụ nke ndị ọrụ na spawn ọnụego. 

Ọ bụrụ na ịchọrọ ịme ule spike, kọwapụta uru buru ibu (kwuo 2000) maka ọnụọgụ ndị ọrụ, wee bụrụ ọnụ ahịa buru ibu maka ọnụego spawn gị (dịka ọmụmaatụ 500). Nke a pụtara na n'ime sekọnd anọ, ị ga-enwe ndị ọrụ 4 niile mepụtara wee nweta ebe njedebe gị. Nnwale nrụgide ga-adị ka nke ahụ, mana ọ nwere uru dị ala karịa maka ọnụego spawn. Iji chọpụta ihe niile ị nwere ike ime, lelee igurube akwụkwọ