Markaa ma RAML baa mise OAS (Swagger)?

Dunida firfircoon ee adeeg-yaraha, wax kastaa way isbedeli karaan - qayb kasta waxaa dib loogu qori karaa luqad kale, iyadoo la adeegsanayo qaab-dhismeedka iyo qaab-dhismeedka kala duwan. Kaliya qandaraasyadu waa inay ahaadaan kuwo aan isbeddelin si adeeg-yaraha loola macaamilo dibadda si joogto ah, iyadoon loo eegin metamorphoses gudaha ah. Maantana waxaan ka hadli doonaa dhibaatada naga haysata xulashada qaabka lagu qeexayo qandaraasyada oo aan wadaagno alaabada aan helnay.

Markaa ma RAML baa mise OAS (Swagger)?

Boostada la diyaariyey Anna Melekhova ΠΈ Vladimir Lapatin

Adeegyada yaryar Markii aan horumarinay Acronis Cyber ​​​​Cloud, waxaan ogaanay inaanan ka baxsan karin iyaga. Iyo naqshadeynta adeeg-yaraha waa wax aan suurtagal ahayn iyada oo aan la rasmi ahayn qandaraaska, taas oo ka dhigan interface-ka adeeg-yaraha.

Laakiin marka alaabtu ka kooban tahay wax ka badan hal qaybood, oo horumarinta qandaraasku ay noqoto hawl joogto ah, kama caawin kartid laakiin bilaw inaad ka fikirto hagaajinta habka. Waxa muuqata in is dhexgalka (contract) iyo hirgelinta (microservice) ay tahay in ay is waafajiyaan, in qaybaha kala duwani ay isku si u sameeyaan wax isku mid ah, iyo in haddii aan go'aannadaas oo dhan la samaynin go'aan dhexe, koox kastaa ay ku qasbanaan doonto waqti badan ku qaado si aad u hesho.

Markaa ma RAML baa mise OAS (Swagger)?
jaantuska Amazon microservices ka dhaji Werner Vogelis, CTO Amazon
Waa maxay dhibka jira? Dhab ahaantii, waxaa jira laba dariiqo oo lagu dhexgalo adeeg-yaraha - HTTP Rest iyo gRPC ee Google. Annaga oo aan doonayn in lagu qabsado kaydka tignoolajiyada Google, waxaanu dooranay nasashada HTTP. Faahfaahinta qandaraaska HTTP REST waxaa inta badan lagu sifeeyaa mid ka mid ah labada qaab: RAML iyo OAS, oo hore loo yiqiin Swagger.Sidaa darteed, koox kasta oo horumarineed waxay la kulmaan baahida loo qabo inay doortaan mid ka mid ah halbeegyada. Laakiin sida ay soo baxday, doorashadani waxay noqon kartaa mid aad u adag.

Maxaa tafsiir loogu baahan yahay?

Faahfaahinta ayaa loo baahan yahay si isticmaale dibadda ahi uu si fudud u ogaado waxa lagu samayn karo adeeggaaga iyada oo loo marayo interface HTTP. Taasi waa, heerka aasaasiga ah, sharraxaadda waa in ay ka kooban tahay ugu yaraan liiska agabyada la heli karo, hababka HTTP, codsiyada hay'adaha, liiska xuduudaha, tilmaanta madaxyada loo baahan yahay iyo kuwa la taageeray, iyo sidoo kale soo celinta koodka iyo qaababka jawaabta. Qayb aad u muhiim ah oo ka mid ah sharraxaadda qandaraaska ayaa ah sharraxaaddooda afka ah ("maxaa dhacaya haddii aad ku darto cabbirka weydiinta codsiga?", "Xaaladee ayaa koodka 400 lagu soo celin doonaa?")

Si kastaba ha ahaatee, marka ay timaaddo horumarinta tiro badan oo adeeg-yaro ah, waxaad dooneysaa inaad qiime dheeraad ah ka soo saarto sharraxaadaha qoran. Tusaale ahaan, iyadoo lagu saleynayo RAML/Swagger, waxaad ku soo saari kartaa macmiilka iyo koodka server-ka labadaba tiro badan oo luuqado barnaamij ah. Waxa kale oo aad si toos ah u heli kartaa dukumeenti loogu talagalay adeeg-yaraha oo aad geli kartaa bogga horumariyahaaga :).

Markaa ma RAML baa mise OAS (Swagger)?
Tusaalaha qeexida qandaraas habaysan

Inta yar waa ku-dhaqanka tijaabinta adeegyadda yar-yar ee ku salaysan sharraxaadda qandaraasyada. Haddii aad qortay labadaba sharraxaad iyo qayb, markaa waxaad samayn kartaa autotest kaas oo hubinaya ku filnaanta adeegga ee noocyada kala duwan ee xogta gelinta. Adeeggu ma soo celiyaa koodka jawaabta ee aan lagu sifeyn sharraxaadda? Ma awood u yeelan doontaa inay si sax ah u baarto xogta cad ee khaldan?

Waxaa intaa dheer, hirgelinta tayada sare leh ee ma aha oo kaliya qandaraasyada laftooda, laakiin sidoo kale qalabka lagu sawirayo sharraxaadda ayaa suurtogal u ah in la fududeeyo shaqada ee adeegaha yar yar. Taasi waa, haddii naqshadeeyaha si tayo leh u qeexay qandaraaska, iyada oo ku saleysan, naqshadeeyayaasha iyo horumariyayaashu waxay hirgelin doonaan adeegga alaabada kale iyada oo aan kharash dheeraad ah lahayn.

Si loo suurtageliyo aalado dheeri ah, RAML iyo OAS labaduba waxay awood u leeyihiin inay ku daraan xogta badan ee aan lagu bixin heerkatusaale ahaan, sidan ayaa lagu sameeyaa OAS).

Guud ahaan, baaxadda hal-abuurka ee isticmaalka qandaraasyada adeeg-yaraha waa weyn... ugu yaraan aragti ahaan.

Isbarbardhigga hedgexog iyo mas

Hadda, aagga horumarinta mudnaanta leh ee Acronis waa horumarinta Acronis Cyber ​​​​Platform. Acronis Cyber ​​​​Platform waa qodobbo cusub oo is dhexgalka adeegyada dhinac saddexaad leh Acronis Cyber ​​​​Cloud iyo qaybta wakiilka. In kasta oo aan ku faraxsannahay API-yada gudaha ee lagu sharraxay RAML, baahida loo qabo daabacaadda API-ga ayaa mar kale kicisay su'aasha doorashada: halbeegee tafatirka ayaa ugu fiican in loo isticmaalo shaqadeena?

Markii hore, waxay u muuqatay inay jiraan laba xal - horumarinta ugu caansan waxay ahaayeen RAML iyo Swagger (ama OAS). Laakiin dhab ahaantii waxaa soo baxday in aysan jirin ugu yaraan 2 doorasho, laakiin 3 ama ka badan.

Dhinaca kale waxaa jira RAML - luqad xoog leh oo hufan. Waxay si fiican u fulisaa kala sareynta iyo dhaxalka, markaa qaabkani wuxuu ku habboon yahay shirkadaha waaweyn ee u baahan sharraxaad badan - taas oo ah, ma aha hal shay, laakiin adeegyo badan oo yar yar oo leh qaybo caan ah oo qandaraasyo ah - nidaamyada aqoonsiga, noocyada xogta isku midka ah, khaladaadka jirka .

Laakin horumariyaha RAML, Mulesoft, ayaa ku biiray dalada Open API, kaas oo soo koraya Dabaasha. Sidaa darteed, RAML waxay hakisay horumarkeeda. Si aad u qiyaasto qaabka dhacdada, qiyaas in ilaaliyayaasha qaybaha ugu muhiimsan ee Linux ay uga tageen inay ka shaqeeyaan Microsoft. Xaaladdani waxay abuurtaa shuruudaha isticmaalka Swagger, kaas oo si firfircoon u horumaraya iyo kii ugu dambeeyay - nooca saddexaad - oo si dhab ah ula qabsanaya RAML xagga dabacsanaanta iyo shaqeynta.

Haddaysan ahayn hal shay...

Sida ay soo baxday, dhammaan adeegyada il-furan lama cusboonaysiiyay OAS 3.0. Adeegyada yaryar ee Go, waxa ugu muhiimsan waxay noqon doontaa la qabsi la'aanta go-swagger nooca ugu dambeeyay ee heerka. Si kastaba ha ahaatee, farqiga u dhexeeya Swagger 2 iyo Swagger 3 waa weyn. Tusaale ahaan, nooca saddexaad ee horumarinta:

  • sharraxaadda la wanaajiyey ee nidaamyada xaqiijinta
  • dhammaatay Taageerada Qorshaha JSON
  • kor u qaaday awooda lagu daro tusaalooyinka

Xaaladdu waa madadaalo: markaad dooranayso halbeeg, waxaad u baahan tahay inaad tixgeliso RAML, Swagger 2 iyo Swagger 3 inay yihiin beddelaad kala duwan. Si kastaba ha ahaatee, kaliya Swagger 2 ayaa taageero wanaagsan u leh qalabka OpenSource. RAML waa mid aad u dabacsan...oo adag, Swagger 3 si liidata ay u taageerto bulshada, markaa waa inaad isticmaashaa qalab gaar ah ama xalal ganacsi, kuwaas oo u muuqda kuwo qaali ah.

Waxaa intaa dheer, haddii ay jiraan waxyaabo badan oo wanaagsan oo ku yaal Swagger, sida portal diyaarsan editor.swagger.io, kaas oo aad ku dhejin karto sharraxaad oo aad ka heli karto muuqaalkeeda sharraxaad faahfaahsan, xiriirinta iyo isku xirnaanta, ka dibna RAML-ka aasaasiga ah iyo saaxiibtinimada ka yar ma jirto fursad noocaas ah. Haa, waxaad ka raadin kartaa shay ka mid ah mashaariicda GitHub, ka hel analoogga halkaas oo adigu geyso. Si kastaba ha noqotee, xaalad kasta, qof ayaa ku qasbanaan doona inuu ilaaliyo marinka, kaas oo aan ku habboonayn isticmaalka aasaasiga ah ama baahiyaha tijaabada. Intaa waxaa dheer, swagger waa ka badan "aan mabda' lahayn", ama ka badan liberal - waxaa laga soo saari karaa faallooyinka code, taas oo, dabcan, ka soo horjeeda mabda'a koowaad API oo aan la taageeray by mid ka mid ah utility RAML.

Hal mar waxa aanu bilownay la shaqaynta RAML oo ah luuqad dabacsan, taasna waxa ay keentay in aanu nafteena wax badan qabano. Tusaale ahaan, mid ka mid ah mashaariicda ayaa isticmaala utility ramfications imtixaanada cutubka, kaas oo taageera kaliya RAML 0.8. Markaa waxay ahayd inaan ku darno biraha si ay utility-gu u "cuno" RAML nooca 1.0.

Ma u baahan tahay inaad doorato?

Ka dib markii aanu ka shaqaynay dhamaystirka nidaamka deegaanka ee xalalka RAML, waxaan gaadhnay gabagabada inaan u baahanahay inaan u badalno RAML Swagger 2 oo aan fulino dhammaan otomatiga, xaqiijinta, tijaabinta iyo hagaajinta ku xigta. Tani waa hab wanaagsan oo looga faa'iidaysto dabacsanaanta RAML iyo taageerada qalabaynta bulshada ee Swagger.

Si loo xalliyo dhibaatadan, waxaa jira laba qalab oo OpenSource ah oo bixiya beddelka qandaraaska:

  1. oas-raml-beddele waa adeeg aan hadda la taageerin. Intii aanu la shaqaynaynay, waxa aanu ogaanay in ay leedahay dhibaatooyin tiro badan oo RAML-yada adag ah kuwaas oo β€œla faafiyey” tiro badan oo faylal ah. Barnaamijkan waxa uu ku qoran yahay JavaScript waxana uu sameeyaa soo noqnoqoshada geedka syntax. Ku qorista firfircoon awgeed, way adkaanaysaa in la fahmo koodkan, sidaa awgeed waxa aanu go'aansanay in aanan wakhtiga ku lumin qoritaanka balastar ee utility dhimanaya.
  2. webapi-parser - qalab ka mid ah shirkad isku mid ah oo sheegta inay diyaar u yihiin inay wax ka beddelaan wax kasta iyo wax kasta, iyo jiho kasta. Ilaa hadda, taageerada ayaa lagu dhawaaqay RAML 0.8, RAML 1.0 iyo Swagger 2.0. Si kastaba ha ahaatee, wakhtiga cilmi-baaristayada, tamarta ayaa weli ahayd AAD U BAAHAN qoyan oo aan la isticmaali karin. Horumariyayaashu waxay abuuraan nooc IR, taasoo u oggolaanaysa inay si degdeg ah ugu kordhiyaan heerar cusub mustaqbalka. Laakiin ilaa hadda ma shaqaynayso.

Taasina maaha dhammaan dhibaatooyinka aan la kulannay. Mid ka mid ah tillaabooyinka tubbadayada waa in la xaqiijiyo in RAML ee kaydka uu sax yahay marka loo eego qeexitaanka. Waxaan isku daynay dhowr adeeg. Waxa la yaab leh, in ay dhammaan ku dhaarteen qoraalladayada meelo kala duwan iyo erayo xunxun oo gebi ahaanba ka duwan. Oo had iyo jeer ma aha ilaa barta :).

Ugu dambeyntii, waxaan dejinay mashruuc hadda duugoobay, kaas oo sidoo kale leh dhibaatooyin dhowr ah (mararka qaarkood waxay ka baxaan buluugga, waxay leeyihiin dhibaatooyin marka la shaqeynayo tibaaxaha caadiga ah). Sidaa darteed, ma aanaan helin hab lagu xalliyo dhibaatooyinka ansaxinta iyo beddelka oo ku salaysan qalab bilaash ah, waxaanan go'aansannay isticmaalka isticmaalka ganacsiga. Mustaqbalka, sida qalabka OpenSource uu noqdo mid qaangaar ah, dhibaatadan ayaa laga yaabaa inay fududaato in la xalliyo. Dhanka kale, kharashka shaqada iyo waqtiga ee "dhammaystirka" waxay noogu muuqatay mid ka muhiimsan qiimaha adeegga ganacsiga.

gunaanad

Waxaas oo dhan ka dib, waxaan rabnay inaan wadaagno khibradeena oo aan ogaano in ka hor intaadan dooran qalab lagu qeexayo qandaraasyada, waxaad u baahan tahay inaad si cad u qeexdo waxa aad ka rabto iyo miisaaniyada aad diyaar u tahay inaad maalgashato. Haddii aan iloobo OpenSource, waxaa horeyba u jiray tiro badan oo adeegyo iyo alaab ah kuwaas oo kaa caawin doona inaad hubiso, beddelato, oo aad ansixiso. Laakiin waa qaali, mararka qaarna waa qaali. Shirkad weyn, kharashyadan oo kale waa loo dulqaadan karaa, laakiin bilawga waxay noqon karaan culays weyn.

Go'aami qalabka aad isticmaali doonto hadhow. Tusaale ahaan, haddii aad kaliya u baahan tahay inaad soo bandhigto qandaraas, way sahlanaan doontaa inaad isticmaasho Swagger 2, oo leh API qurux badan, sababtoo ah RAML waa inaad adigu dhistaa oo ilaalisaa adeegga.
Hawlaha badan ee aad haysatid, baahida qalabku way sii ballaaranaysaa, waxayna ku kala duwan yihiin qaybaha kala duwan, waxaana fiican inaad isla markiiba barato noocyada la heli karo si aad u sameyso doorasho yaraynaysa kharashkaaga mustaqbalka.

Laakiin waxaa habboon in la aqoonsado in dhammaan nidaamyada deegaanka ee maanta jira ay yihiin kuwo aan dhammaystirnayn. Sidaa darteed, haddii ay jiraan taageerayaal shirkadda oo jecel inay ka shaqeeyaan RAML sababtoo ah "waxay kuu ogolaaneysaa inaad u muujiso fikradaha si dabacsan," ama, liddi ku ah, door bidaan Swagger sababtoo ah " way caddahay," waxaa fiican inaad ka tagto shaqada. waxa ay yihiin Waa loo isticmaalaa oo ay rabaan, sababtoo ah qalabka nooc kasta oo ka mid ah qaababka waxay u baahan yihiin wax ka beddelka faylka.

Dhanka waayo-aragnimadayada, qoraalada soo socda waxaan kaga hadli doonaa waxa ku saabsan hubinta joogtada ah iyo kuwa firfircoon ee aan sameyno iyadoo ku saleysan qaab dhismeedka RAML-Swagger, iyo sidoo kale dukumeentiyada aan ka soo saarno qandaraasyada, iyo sida ay u wada shaqeeyaan.

Isticmaalayaasha diiwaangashan oo keliya ayaa ka qaybqaadan kara sahanka. Soo gal, soo dhawoow.

Luuqaddee ayaad isticmaashaa si aad u sharaxdo qandaraasyada adeega-yaraha?

  • RAML 0.8

  • RAML 1.0

  • Swagger 2

  • OAS3 (aka)

  • Buluug

  • Kuwa kale

  • Aan la isticmaalin

100 isticmaale ayaa codeeyay. 24 isticmaale ayaa ka aamusay.

Source: www.habr.com

Add a comment