Nkeji 5 / 11

API Nnwale akpaaka: Nkwekọrịta, atụmatụ na nkwado njedebe na njedebe na AI

Uru:

  • Ikike iji duzie ule API n'ime omimi site na nkwado ọgụgụ isi mmadụ na koodu ọkwa, atụmatụ / nkwekọrịta, iwu azụmaahịa na ọkwa adịghị mma / ikike
  • Ikike imepụta atụmatụ JSON site na nzaghachi nlele wee zere ntụkwasị obi pseudo nke ilele naanị koodu ọnọdụ nwere ụdị yana nkwado dị mkpa.
  • Ikike iji nwalee ọnọdụ nchekwa dị ka ikike na IOR nwere data sịntetik yana maka ebumnuche nchekwa naanị n'ime ikike.

Ọtụtụ sọftụwia ọgbara ọhụrụ na-agwa ibe ha okwu n'azụ site na API (Interface Programming Application — interface ebe akụkụ abụọ nke ngwanrọ na-ekwu okwu dị ka nkwekọrịta akọwapụtara). Mgbe ngwa mkpanaaka na-agbakwunye ihe na ụgbọ ibu, ọ na-ezigara arịrịọ API na sava ahụ. Nnwale API na-enyocha na mkparịta ụka a ziri ezi, nwee nchekwa, yana agbanwe agbanwe, n'agbanyeghị elele anya; Ọ dị ngwa ngwa, kwụsie ike ma dị omimi karịa nnwale UI. Ọgụgụ isi (AI) na-arụ ọrụ nke ọma na nnwale API: ọ na-ewepụta ule sitere na nkọwa API, na-ewepụta atụmatụ nzaghachi (nkwekọrịta nke na-akọwapụta usoro data), depụtara ikpe ikpe. Ma ọzọ caveat etiti na-emetụta: AI amaghị ezigbo iwu azụmahịa nke API gị; na-achọ imepụta ule elu nke na-akwado naanị "200 laghachiri". Ọrụ gị bụ ijide n'aka na nnwale ahụ gosipụtara nkwekọrịta na mgbagha azụmahịa.

N'ime nkeji a, ị ga-amụta ka esi melite AI na-akwado, ule API miri emi nwere ụzọ dị ka Postman, REST Assured na schema nkwado.

Ngosipụta nke ule API

Tụlee ule API n'ọtụtụ omimi, na AI na-enyere aka dị iche iche na oyi akwa ọ bụla:

1. Koodu ọnọdụ na nzaghachi bụ isi. Arịrịọ ahụ ọ na-eweghachi koodu ọnọdụ HTTP a tụrụ anya ya (200/201 maka ịga nke ọma, 400/401/404 maka njehie)? Nke a bụ oyi akwa kachasị elu; AI na-emepụta ngwa ngwa mana naanị na-enye ntụkwasị obi ụgha.

2. Nkwenye atụmatụ / nkwekọrịta. Ọdịdị nke nzaghachi ọ dabara na nkwekọrịta - ọ bụ ubi ndị a na-atụ anya ya, ụdị ha ziri ezi, achọrọ ubi na-efu? AI nwere ike ịmepụta JSON Schema - ọkọlọtọ nke na-akọwa nhazi nke akwụkwọ JSON - site na nzaghachi nlele, na ule nwere ike ịkwado megide atụmatụ ahụ. Nke a siri ike karịa ka iji aka na-ede nkwupụta gbadoro ụkwụ na mpaghara.

3. Nkwado iwu azụmahịa. Ezigbo uru dị ebe a: "Maka usoro 1000 TL, mpaghara mbelata kwesịrị ịbụ 100", "enweghị ike ịkagbu iwu kagburu ọzọ". AI ga-enyocha naanị ndị a ma ọ bụrụ na ị nye ya iwu; Ọ bụrụ na ị nyeghị ya, ọ ga-awụlikwa elu.

4. Na-adịghị mma na nchekwa. 401 maka akara na-adịghị mma, 403 maka ịnweta data onye ọzọ, kpochapụ 400 maka ahụ ọjọọ. Nnwale ikike (igosipụta na onye ọrụ nwere ike ịnweta data nke ya naanị) bụ isi nchekwa API ma mee ya maka ebumnuche nchekwa.

NDỤMỌDỤ: Arịọla ule n'agwaghị AI ka "mepụta ọ bụghị naanị koodu ọnọdụ, kamakwa atụmatụ nzaghachi na iwu azụmahịa ndị ahụ." Ma ọ bụghị ya, a ga-ahapụ gị na ule ndị na-ekwu "200 laghachiri, gafere" mana ahụghị API na-eweghachi data mebiri emebi.

Ngwa ngwa adịghị ike / Ike siri ike

Adịghị ike: "Dee ule maka API a."
Ike: "Dee ule REST Assured (Java) maka njedebe POST / iwu. Agreement: productId na quantity bụ iwu n'ime ahụ; 201 na {orderId, total, discount, status} na-laghachiri na ihe ịga nke ọma. Iwu azụmahịa: 10% ego n'elu 1000 TL; 400 ma ọ bụrụ na quantity na-ahụ mgbe 3 = 4; Nnwale nke onye ọrụ: (1) koodu ọkwa, (2) nzaghachi JSON schema nkwado, (3) iwu azụmahịa ego, (4) kechie nkwupụta ọ bụla na iwu azụmahịa doro anya;

Ngwa ngwa dị ike na-enye nkwekọrịta ahụ, iwu azụmahịa, ọnọdụ nchekwa, na atụmanya nkwado atụmatụ.

Nnwale nkwekọrịta: igbochi nkewa n'etiti otu

N'ime ụlọ ọrụ microservice (usoro nke kewara ngwa ahụ ka ọ bụrụ obere ọrụ na-adabere na ibe ya ma na-agwa API okwu), na-agbanwe usoro nzaghachi nke ọrụ na-akpaghasị ọrụ ndị ọzọ ejikọrọ na ya. Nnwale nkwekọrịta - ule nke na-achọpụta na nkwekọrịta API n'etiti ọrụ ndị na-enye ọrụ na ọrụ ndị na-azụ ahịa adịghị agbaji n'akụkụ abụọ - na-enweta nkwụsịtụ dị otú ahụ n'oge. Echiche bụ nke a: onye na-azụ ahịa na-akọwapụta ụdị nzaghachi ọ na-atụ anya n'aka onye mmepụta dị ka "nkwekọrịta"; Na mgbanwe ọ bụla, onye nrụpụta na-anwale na ọ ka na-akwado nkwekọrịta a. Ya mere, mgbe aha ma ọ bụ ụdị ubi gbanwere, onye na-azụ ahịa na-agwa pipeline tupu ọ daa.

AI na-akwalite ọrụ abụọ n'ọnọdụ a: idepụta nkwekọrịta nke na-egosipụta atụmanya ndị ahịa site na nzaghachi API dị adị, yana akara akara nkebi okwu nkwekọrịta mgbanwe nwere ike imebi. Ma nkwekọrịta n'onwe ya bụ mkpebi azụmahịa: ọkachamara na-ekpebi ebe ndị dị oke egwu n'ezie, nke mgbanwe ga-emebi ndakọrịta azụ - ndị na-azụ ahịa ochie na-aga n'ihu na-arụ ọrụ. AI na-ede nkwekọrịta; Ị bụ onye kwadoro ya.

Ndụmọdụ: Ihichapụ ubi ma ọ bụ ịgbanwe ụdị ubi na API ọ fọrọ nke nta ka ọ bụrụ mgbanwe na-emebi emebi. Ịtinye mpaghara ọhụrụ na-adịkarị mma. Inwe AI na-ekewa mgbanwe dị ka "na-agbaji ma ọ bụ nchekwa" na-enye nlele nchekwa tupu ahapụ ya ngwa ngwa.

Onye nzi ozi ma ọ bụ koodu dabere?

akara

Onye nzi ozi/Newman

Ekwenyesiri ike / koodu (Java, C#, JS)

Ịmụ ihe

Dị mfe, anya

Achọrọ ihe ọmụma koodu

Njikwa ụdị

mkpokọta JSON

Kpọmkwem na koodu isi mmalite

mgbagwoju anya mgbagha

Oke (edemede JS)

Ike mmemme zuru oke

Ntinye CI/CD

ya na Newman

dabere ozugbo na iwu ụlọ

Nkwado atụmatụ

Na scripts ule

Dị ike na ọba akwụkwọ

Ọnụ ọgụgụ otu

obere/ọkara

nnukwu, tozuru okè

AI na-emepụta koodu maka abụọ; Gosipụta nke ị chọrọ.

Ndebiri anọ enwere ike iṅomi

1) Nnwale API dabere na nkwekọrịta:

Ọrụ gị: senior API test engineer.Dee ule maka njedebe na-esonụ na [ngwaọrụ/asụsụ]: [usoro + ụzọ].Nkwekọrịta: [chọrọ ubi, ihe ịga nke ọma koodu, nzaghachi Ọdịdị] .Business iwu: [iwu].Test layers: (1) status code (2) nzaghachi schema nkwado (3) onye ọ bụla azụmahịa iwu (4) ọjọọ + ikike. Jikọọ nke ọ bụla iwu na-etinye aka na nkwekọrịta.

2) Ọgbọ atụmatụ site na nzaghachi nlele:

Mepụta atụmatụ JSON site na nzaghachi API nlele dị n'okpuru. Ezipụta mpaghara achọrọ, ụdị, mmachi usoro (ụbọchị, email, oke ọnụọgụ). Nyezie ihe atụ nnwale na-akwado megide atụmatụ a. Nzaghachi nlele: [tapawa JSON]

3) Ihe ndapụta adịghị mma na ikike:

Mepụta ikpe ule na-adịghị mma na nchekwa maka njedebe[ngwụcha]. Gụnyere: ubi efu/achọrọ, ụdị na-ezighi ezi, uru buru ibu, akara ezighi ezi/kubie ume, ịnweta akụrụngwa na-akwadoghị (IDOR — ịnweta ndekọ onye ọzọ site na ịgbanwe ID), oke ọnụego. Ezipụta koodu ọkwa a na-atụ anya na ahụ mperi maka ọnọdụ ọ bụla. Mara: A ga-anwale naanị na API nke m, enyere ikike.

4) njikwa pseudo- ntụkwasị obi:

Lelee ule API a. Nnwale a ọ ga-enweta ma ọ bụrụ na ihe nkesa weghachiri koodu ọnọdụ ziri ezi kama FALSEbody/data? Ọ bụrụ na ọ bụghị, tinye schema na nkwado iwu azụmahịa. Nnwale: [mado ule]

Obere ikpe atọ

Ikpe 1 - Ike nke schema nkwado. Otu otu nọ na-elele koodu ọkwa naanị na ule o jiri AI wepụta. N'otu ụdị, API malitere n'ụzọ ezighi ezi iweghachi mkpokọta mkpokọta dị ka ederede ("1200"); ule nọrọ green n'ihi na ọ ka na-alọghachi 200. Mobile ngwa dara. Ka ịgbakwunye ụdị nkwado ya na template "Schema generation from sample reply", otu njehie ahụ ka enwetara ozugbo.

Ikpe 2 - oghere ikike (IDOR). Otu ọkachamara gbara ule IDOR n'etiti "ọnọdụ adịghị mma na ikike ikike" nke AI mepụtara: Ọ rịọrọ ka ID onye ọrụ B na akara njirimara A. API weghachiri data nke 200 na B - adịghị ike ikike ikike. Nnwale nchekwa a mechiri ihipu data tupu ọ dị ndụ.

Ikpe 3 - Usoro iwu azụmahịa. AI mepụtara ule 8 maka njedebe nkwụsị ego; ha niile na-enyocha 200, ọ nweghị onye na-enyocha ego mbelata. Ọkachamara ahụ gbakwunyere iwu azụmaahịa na ngwa ngwa wee megharịa ha. Nnwale ọhụrụ gosipụtara na agbakọ ego ahụ ezighi ezi na oke 1000 TL (a na-etinyekwa ego ahụ na 999). Njikwa nkwekọrịta ezughị; njikwa iwu azụmahịa dị mkpa.

Mmejọ ndị nkịtị

  • Naanị ilele koodu ọnọdụ. Ịsị "200 alọghachila wee gafee"; na-ahụghị ahụ rụrụ arụ (ụgha-atụkwasị obi).
  • Ịgafe nkwado schema. Ọ bụghị ịlele ubi ụdị na ọrụ; ụdị mgbanwe gafere n'obere nkịtị.
  • Arịrịọ ule na-enyeghị iwu azụmahịa. AI amaghị iwu; ọ na-emepụta naanị njikwa teknụzụ.
  • Na-echefu ọnọdụ adịghị mma na ikike. Naanị ule ndị a na-ejide adịghị ike nchekwa (IDOR, ohere na-enwetaghị ikike).
  • Iji ezigbo / mmepụta token na data. Jiri mgbasa ozi raara onwe ya nye na data sịntetik maka nnwale; Etidokwala ezigbo igodo n'ime ụgbọ ala.
  • Nnwale nchekwa na-akwadoghị. Gbaa ule ikike naanị na API nke gị yana ikike.

Na nchịkọta

Nnwale API na-enyocha okwu nke ngwa ngwa ngwa ngwa ngwa na miri emi, n'agbanyeghị interface. AI; Nnwale nkwekọrịta na-arụ ọrụ nke ọma na ịmepụta atụmatụ JSON na ọnọdụ ọjọọ / nchekwa site na nzaghachi nlele. Mana ule elu nke na-elele naanị koodu ọkwa na-enye ntụkwasị obi pseudo. Chọrọ ọkwa anọ niile: koodu ọkwa, nkwado schema, iwu azụmaahịa, adịghị mma na ikike. Tinye iwu azụmahịa na nkwekọrịta na ngwa ngwa; Jiri data sịntetik mee ule nchekwa yana naanị site na ikike.

Ọrụ ngwa

Họrọ njedebe API site na ọrụ nke gị. Mee ka AI jiri ụdị “nnwale API dabere na nkwekọrịta” dee ule nke oyi akwa anọ. Wee tinye nkwado ụdị/mmanye mmanye na "ọgbọ schema sitere na nzaghachi nlele" wee tinye "pseudo-trust checking". Gbaa opekata mpe otu ọnọdụ IDOR/ikike na gburugburu ule nke gị. Kpesa nkwekọrịta ọ bụla ma ọ bụ mmebi iwu azụmahịa ị chọtara; Ọ bụrụ na ịnweghị ike ịhụ nke ọ bụla, gbaa ule ahụ ka ọ bụrụ nzaghachi ụma kpachapụrụ anya iji gosi na ọ jidere ya.

ndetu

  • [] M kpuchiri ule anọ nke ule (ikpe, schema, iwu azụmahịa, ọjọọ / ikike).
  • [] Enyere m AI n'ụzọ doro anya nkwekọrịta na iwu azụmahịa.
  • [] M na-edozi ule na-akwado atụmatụ nzaghachi (ubi, ụdị, dị mkpa).
  • [ ] Agbalịrị m opekata mpe otu ikike/ ọnọdụ IDOR na-agbachitere.
  • M na-eji gburugburu ule na data sịntetik kama iji ezigbo akara/data.
  • [] Eji m ''pseudo-security check'' na ule ọ bụla na-ejide nzaghachi mebiri emebi.