Joale na ke RAML kapa OAS (Swagger)?

Lefats'eng le matla la li-microservices, ntho leha e le efe e ka fetoha-karolo leha e le efe e ka ngoloa bocha ka puo e fapaneng, ho sebelisoa mekhoa e fapaneng le meaho. Ke likonteraka feela tse lokelang ho lula li sa fetohe e le hore microservice e ka sebelisana le eona ho tsoa ka ntle ka mokhoa o itseng o sa feleng, ho sa tsotellehe metamorphoses ea ka hare. 'Me kajeno re tla bua ka bothata ba rona ba ho khetha mokhoa oa ho hlalosa likonteraka le ho arolelana lintho tsa khale tseo re li fumaneng.

Joale na ke RAML kapa OAS (Swagger)?

Poso e lokisitsoe Anna Melekhova и Vladimir Lapatin

Litšebeletso tse nyenyane. Ha re nts'etsapele Acronis Cyber ​​​​Cloud, re ile ra hlokomela hore re ke ke ra ba phonyoha. 'Me ho rala microservice ha ho khonehe ntle le ho theha konteraka, e emelang sebopeho sa microservice.

Empa ha sehlahisoa se na le likarolo tse fetang bonngoe, 'me nts'etsopele ea konteraka e fetoha ts'ebetso e tloaelehileng, u ka qala ho nahana ka ntlafatso ea ts'ebetso. Hoa hlaka hore sehokelo (konteraka) le ts'ebetsong (microservice) li tlameha ho ts'oana, hore likarolo tse fapaneng li tlameha ho etsa lintho tse tšoanang ka tsela e ts'oanang, le hore ntle le qeto e bohareng ea liqeto tsena kaofela, sehlopha se seng le se seng se tla qobelloa ho etsa liqeto. qeta nako le nako ho li fumana.

Joale na ke RAML kapa OAS (Swagger)?
Setšoantšo sa Amazon microservices ho tloha tweet Werner Vogelis, CTO Amazon
Bothata ke eng? Ha e le hantle, ho na le mekhoa e 'meli ea ho sebelisana le li-microservices - HTTP Rest le gRPC ho tsoa ho Google. Kaha ha re batle ho ts'oaroa ke theknoloji ea Google, re khethile HTTP Rest. Litlhaloso tsa konteraka tsa HTTP REST hangata li hlalosoa ka mokhoa o mong oa tse peli: RAML le OAS, eo pele e neng e tsejoa e le Swagger. Empa ha e le hantle, ho etsa khetho ena ho ka ba thata haholo.

Ke hobane'ng ha litlhaloso li hlokahala?

Tlhaloso ea hlokahala e le hore mosebedisi oa kantle a ka tseba habonolo se ka etsoang ka tšebeletso ea hau ka sebopeho sa eona sa HTTP. Ke hore, boemong ba motheo, tlhaloso e tlameha ho ba le bonyane lethathamo la lisebelisoa tse fumanehang, mekhoa ea bona ea HTTP, lihlopha tsa kopo, lethathamo la li-parameter, pontšo ea lihlooho tse hlokahalang le tse tšehetsoeng, hammoho le mekhoa ea ho khutlisa le liforomo tsa likarabo. Ntho ea bohlokoa haholo ea tlhaloso ea konteraka ke tlhaloso ea bona ea mantsoe ("ho tla etsahala'ng haeba u kenya paramethara ea potso ho kopo?", "Ke maemong afe moo khoutu ea 400 e tla khutlisoa?")

Leha ho le joalo, ha ho tluoa tabeng ea ho hlahisa palo e kholo ea li-microservices, u batla ho ntša boleng bo eketsehileng ho litlhaloso tse ngotsoeng. Mohlala, o ipapisitse le RAML/Swagger, o ka hlahisa khoutu ea bareki le seva ka palo e kholo ea lipuo tsa mananeo. U ka boela ua amohela litokomane tsa microservice 'me ua li kenya ho portal ea hau ea nts'etsopele :).

Joale na ke RAML kapa OAS (Swagger)?
Mohlala oa tlhaloso e hlophisitsoeng ea konteraka

Ntho e sa tloaelehang haholo ke mokhoa oa ho leka li-microservices ho latela litlhaloso tsa konteraka. Haeba u ngotse litlhaloso le karolo, u ka etsa tlhahlobo ea autotest e lekola ho lekana ha ts'ebeletso ka mefuta e fapaneng ea data ea ho kenya. Na tšebeletso e khutlisa khoutu ea karabo e sa hlalosoang tlhalosong? Na e tla khona ho sebetsa ka nepo data e hlakileng e fosahetseng?

Ho feta moo, ts'ebetsong ea boleng bo phahameng eseng feela likonteraka ka botsona, empa le lisebelisoa tsa ho bona litlhaloso li etsa hore ho khonehe ho nolofatsa mosebetsi ka microservice. Ke hore, haeba setsebi sa meralo se hlalositse konteraka ka mokhoa o nepahetseng, ho itšetlehile ka eona, baqapi le bahlahisi ba tla kenya ts'ebetsong ts'ebeletso ho lihlahisoa tse ling ntle le litšenyehelo tse eketsehileng tsa nako.

Ho nolofalletsa lisebelisoa tse eketsehileng, RAML le OAS li na le bokhoni ba ho eketsa metadata e sa fanoeng ke maemo (mohlala, ke kamoo e etsoang ho OAS).

Ka kakaretso, sebaka sa boqapi ba ho sebelisa likonteraka tsa li-microservices se seholo ... bonyane ka khopolo.

Ho bapisa hedgehog le noha

Hajoale, sebaka sa nts'etsopele se tlang pele ho Acronis ke nts'etsopele ea Acronis Cyber ​​​​Platform. Acronis Cyber ​​​​Platform ke lintlha tse ncha tsa kopanyo ea lits'ebeletso tsa motho oa boraro le Acronis Cyber ​​​​Cloud le karolo ea moemeli. Le hoja re ne re thabetse li-API tsa rona tsa ka hare tse hlalositsoeng ho RAML, tlhokahalo ea ho phatlalatsa API e boetse e phahamisitse potso ea khetho: ke litekanyetso life tsa litlhaloso tse molemo ka ho fetisisa tseo re ka li sebelisang bakeng sa mosebetsi oa rona?

Qalong, ho ne ho bonahala eka ho na le litharollo tse peli - tsoelo-pele e tloaelehileng e ne e le RAML le Swagger (kapa OAS). Empa ha e le hantle ho ile ha fumaneha hore bonyane ha ho na mekhoa e meng e 2, empa e 3 kapa ho feta.

Ka lehlakoreng le leng ho na le RAML - puo e matla le e sebetsang hantle. E sebelisa bolaoli le lefa hantle, kahoo sebopeho sena se loketse haholoanyane lik'hamphani tse kholo tse hlokang litlhaloso tse ngata - ke hore, eseng sehlahisoa se le seng, empa li-microservices tse ngata tse nang le likarolo tse tloaelehileng tsa likonteraka - merero ea ho netefatsa, mefuta e tšoanang ea data, mekhatlo ea liphoso. .

Empa moqapi oa RAML, Mulesoft, o kene ho Open API consortium, e ntseng e tsoela pele swagger. Ka hona, RAML e emisitse nts'etsopele ea eona. Ho nahana ka sebopeho sa ketsahalo, nahana hore bahlokomeli ba likarolo tsa mantlha tsa Linux ba tlohile ho sebetsa ho Microsoft. Boemo bona bo theha litlhokahalo tsa ho sebelisa Swagger, e ntseng e tsoela pele ka matla le ea morao-rao - mofuta oa boraro - e ts'oara RAML mabapi le maemo le ts'ebetso.

Haeba e se ka ntho e le 'ngoe ...

Ha ho ntse ho le joalo, ha se lisebelisoa tsohle tse bulehileng tse ntlafalitsoeng ho OAS 3.0. Bakeng sa li-microservices ho Go, ntho ea bohlokoa ka ho fetisisa e tla ba ho hloka ho ikamahanya le maemo go-swagger bakeng sa mofuta oa morao-rao oa maemo. Leha ho le joalo, phapang lipakeng tsa Swagger 2 le Swagger 3 ke e kgolohadi. Ka mohlala, phetolelong ea boraro bahlahisi:

  • tlhaloso e ntlafalitsoeng ea merero ea netefatso
  • qetile Tšehetso ea JSON Schema
  • e ntlafatsa bokhoni ba ho eketsa mehlala

Boemo boa qabola: ha u khetha maemo, u lokela ho nahana ka RAML, Swagger 2 le Swagger 3 e le mekhoa e meng e fapaneng. Leha ho le joalo, ke Swagger 2 feela e nang le tšehetso e ntle bakeng sa lisebelisoa tsa OpenSource. RAML e feto-fetoha haholo...e rarahane, 'me Swagger 3 ha e tšehetsoe hantle ke sechaba, kahoo u tla tlameha ho sebelisa lisebelisoa tsa botho kapa litharollo tsa khoebo, tse atisang ho bitsa chelete e ngata.

Ho feta moo, haeba ho na le likarolo tse ngata tse ntle ho Swagger, joalo ka portal e seng e entsoe mohlophisi.swagger.io, eo ho eona u ka kenyang tlhaloso 'me u fumane pono ea eona ka tlhaloso e qaqileng, lihokelo le likhokahano, ebe bakeng sa RAML ea bohlokoa le e seng botsoalle ha ho na monyetla o joalo. Ee, o ka batla ho hong har'a merero ho GitHub, fumana analogue moo 'me u ipehele eona. Leha ho le joalo, maemong afe kapa afe, motho o tla tlameha ho boloka portal, e seng bonolo bakeng sa ts'ebeliso ea mantlha kapa litlhoko tsa tlhahlobo. Ho phaella moo, swagger e "se na melao-motheo", kapa e lokolohile ho feta - e ka hlahisoa ho tsoa ho maikutlo a khoutu, eo, ha e le hantle, e khahlanong le molao-motheo oa pele oa API 'me ha e tšehetsoe ke leha e le efe ea lisebelisoa tsa RAML.

Ka nako e 'ngoe re ile ra qala ho sebetsa le RAML e le puo e bonolo haholoanyane, 'me ka lebaka leo re ne re tlameha ho etsa lintho tse ngata ka borōna. Ka mohlala, e 'ngoe ea merero e sebelisa lisebelisoa ramlifications litekong tsa yuniti, tse tšehetsang RAML 0.8 feela. Kahoo re ile ra tlameha ho kenya lithupa e le hore lisebelisoa li ka "ja" RAML mofuta oa 1.0.

Na u hloka ho khetha?

Ha re se re sebelitse ho phethela tikoloho ea tharollo ea RAML, re fihletse qeto ea hore re hloka ho fetolela RAML ho Swagger 2 le ho etsa boiketsetso, netefatso, liteko le ts'ebetso e latelang ho eona. Ona ke mokhoa o motle oa ho phahamisa maemo a RAML le ts'ehetso ea lisebelisoa tsa sechaba ho tsoa ho Swagger.

Ho rarolla bothata bona, ho na le lisebelisoa tse peli tsa OpenSource tse lokelang ho fana ka phetoho ea konteraka:

  1. oas-raml-converter ke sesebelisoa se sa sebetseng hajoale. Ha re ntse re sebetsa le eona, re ile ra fumana hore e na le mathata a mangata a nang le RAML e rarahaneng e "jalehileng" holim'a palo e kholo ea lifaele. Lenaneo lena le ngotsoe ka JavaScript 'me le etsa phetisetso ea sefate sa syntax. Ka lebaka la ho thaepa ka matla, ho ba thata ho utloisisa khoutu ena, kahoo re nkile qeto ea ho se senye nako ea ho ngola li-patches bakeng sa sesebelisoa se shoang.
  2. webapi-parser - sesebelisoa se tsoang k'hamphaning e le 'ngoe e ipolelang hore e itokiselitse ho fetola ntho leha e le efe le ntho e' ngoe le e 'ngoe, le ka tsela leha e le efe. Ho fihlela joale, tšehetso e phatlalalitsoe bakeng sa RAML 0.8, RAML 1.0 le Swagger 2.0. Leha ho le joalo, nakong ea lipatlisiso tsa rona, ts'ebeliso e ne e ntse e le teng KHABANE e mongobo ebile e sa sebelisoe. Bahlahisi ba theha mofuta oa IR, ho ba lumella ho eketsa litekanyetso tse ncha ka potlako nakong e tlang. Empa ho fihlela hajoale ha e sebetse.

Mme ana ha se mathata ohle ao re kopaneng le ona. E 'ngoe ea mehato ea lipeipi tsa rona ke ho netefatsa hore RAML e tsoang sebakeng sa polokelo e nepahetse ho latela se boletsoeng. Re lekile lisebelisoa tse 'maloa. Ho makatsang ke hore kaofela ba ile ba hlapanya litlhaloso tsa rona libakeng tse fapaneng le ka mantsoe a fapaneng ka ho feletseng a mabe. 'Me eseng kamehla ho ntlha :).

Qetellong, re ile ra rarolla morero o seng o siiloe ke nako, o nang le mathata a 'maloa (ka linako tse ling o senyeha, o na le mathata ha o sebetsa ka lipolelo tse tloaelehileng). Ka hona, ha rea ​​ka ra fumana mokhoa oa ho rarolla mathata a ho netefatsa le ho sokoloha ho itšetlehile ka lisebelisoa tsa mahala, 'me re etsa qeto ea ho sebelisa sesebelisoa sa khoebo. Nakong e tlang, ha lisebelisoa tsa OpenSource li ntse li hōla haholoanyane, bothata bona bo ka ba bonolo ho bo rarolla. Khabareng, litšenyehelo tsa mosebetsi le nako bakeng sa "ho qeta" li ne li bonahala li le bohlokoa ho rona ho feta litšenyehelo tsa tšebeletso ea khoebo.

fihlela qeto e

Ka mor'a sena sohle, re ne re batla ho arolelana phihlelo ea rona mme re hlokomele hore pele u khetha sesebelisoa sa ho hlalosa likonteraka, u lokela ho hlalosa ka ho hlaka seo u se batlang ho sona le hore na u ikemiselitse ho kenya chelete efe. Haeba re lebala ka OpenSource, ho se ho ntse ho e-na le palo e kholo ea litšebeletso le lihlahisoa tse tla u thusa ho hlahloba, ho fetola le ho netefatsa. Empa li theko e boima, 'me ka linako tse ling li turu haholo. Bakeng sa k'hamphani e kholo, litšenyehelo tse joalo li mamelleha, empa bakeng sa ho qala li ka fetoha moroalo o moholo.

Etsa qeto ea sete ea lisebelisoa tseo u tla li sebelisa hamorao. Ka mohlala, haeba u hloka feela ho bontša konteraka, ho tla ba bonolo ho sebelisa Swagger 2, e nang le API e ntle, hobane ho RAML u tla tlameha ho haha ​​​​le ho boloka tšebeletso ka boeena.
Ha u ntse u e-na le mesebetsi e mengata, ho tla ba le tlhokahalo e kholo ea lisebelisoa, 'me li fapane bakeng sa liforomo tse fapaneng,' me ho molemo ho tloaelana le liphetolelo tse teng hang-hang e le hore u etse khetho e fokotsang litšenyehelo tsa hau nakong e tlang.

Empa ke habohlokoa ho hlokomela hore litsamaiso tsohle tsa tikoloho tse teng kajeno ha lia phethahala. Ka hona, haeba ho na le balateli ba k'hamphani ba ratang ho sebetsa RAML hobane "e u lumella ho hlalosa mehopolo ka mokhoa o bonolo," kapa, ho fapana le hoo, khetha Swagger hobane "e hlakile haholoanyane," ho molemo ho ba tlohela hore ba sebetse. ho seo ba leng sona Ba e tloaetse ebile ba e batla, hobane lisebelisoa tsa lifomate life kapa life li hloka ho fetoloa ka faele.

Mabapi le phihlelo ea rona, liphatlalatsong tse latelang re tla bua ka hore na ke licheke life tse tsitsitseng le tse matla tseo re li etsang ho latela moralo oa rona oa RAML-Swagger, hammoho le hore na ke litokomane life tseo re li hlahisang ho tloha likonteraka, le hore na li sebetsa joang.

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

U sebelisa puo efe ho hlakisa likonteraka tsa litšebeletso tse nyane?

  • RAML 0.8

  • RAML 1.0

  • Swagger 2

  • OAS3 (aka)

  • Polane

  • Tse ling

  • Ha e sebelisoe

Basebelisi ba 100 ba ile ba khetha. Basebelisi ba 24 ba hanne.

Source: www.habr.com

Eketsa ka tlhaloso