Ka RAML sa OAS (Swagger)?

Ao amin'ny tontolon'ny microservices mavitrika, afaka miova ny zava-drehetra β€” ny singa rehetra dia azo soratana amin'ny fiteny hafa, mampiasa rafitra sy rafitra samihafa. Ny fifanarahana ihany no tokony hijanona tsy hiova mba hahafahan'ny microservice mifandray amin'ny ivelany amin'ny fototra maharitra, na inona na inona metamorphose anatiny. Ary androany isika dia hiresaka momba ny olana amin'ny fisafidianana endrika famaritana ny fifanarahana sy hizarana ny artifact hitanay.

Ka RAML sa OAS (Swagger)?

Voaomana ny lahatsoratra Anna Melekhova ΠΈ Vladimir Lapatin

Microservices. Rehefa namolavola ny Acronis Cyber ​​​​Cloud dia nahatsapa izahay fa tsy afaka mandositra azy ireo izahay. Ary ny famolavolana microservice dia tsy azo atao raha tsy misy ny fifanarahana, izay maneho ny interface tsara ny microservice.

Saingy rehefa misy singa mihoatra ny iray ny vokatra iray, ary lasa hetsika tsy tapaka ny fampandrosoana ny fifanarahana, dia tsy afaka ny tsy hieritreritra momba ny fanatsarana ny dingana ianao. Miharihary fa ny interface (fifanarahana) sy ny fampiharana (microservice) dia tsy maintsy mifanandrify, fa ny singa samihafa dia tsy maintsy manao zavatra mitovy amin'ny fomba mitovy, ary raha tsy misy fandraisana fanapahan-kevitra ifotony amin'ireo fanapahan-kevitra rehetra ireo, dia ho voatery ny ekipa tsirairay. mandany fotoana imbetsaka mba hahazoana azy ireo.

Ka RAML sa OAS (Swagger)?
Amazon microservices diagram avy amin'ny bitsika Werner Vogelis, CTO Amazon
Inona no olana? Raha ny marina, misy fomba roa hifaneraserana amin'ny serivisy micro - HTTP Rest sy gRPC avy amin'ny Google. Tsy te-hiditra amin'ny fitambaran'ny teknolojian'ny Google izahay, dia nisafidy ny HTTP Rest. Ny fanamarihana fifanarahana HTTP REST dia matetika nofaritana amin'ny iray amin'ireo endrika roa: RAML sy OAS, fantatra taloha amin'ny anarana hoe Swagger. Saingy raha ny fandehany fa ny fanaovana io safidy io dia mety ho sarotra be.

Nahoana no ilaina ny fanamarihana?

Ilaina ny fanamarihana mba ahafahan'ny mpampiasa ivelany mamantatra mora foana ny zavatra azo atao amin'ny serivisinao amin'ny alΓ lan'ny interface HTTP. Izany hoe, amin'ny ambaratonga fototra, ny fanamarihana dia tsy maintsy misy lisitra farafaharatsiny misy loharanon-karena, ny fomba HTTP-ny, ny vatana fangatahana, ny lisitry ny mari-pamantarana, ny famantarana ny loha-hevitra ilaina sy tohanana, ary koa ny kaody miverina sy ny endrika valiny. Ny singa iray tena manan-danja amin'ny fanamarihan'ny fifanarahana dia ny famaritana am-bava azy ireo ("inona no hitranga raha ampidirinao amin'ny fangatahana ity fanontaniana ity?", "Ahoana no hamerenana ny code 400?")

Na izany aza, raha ny amin'ny famolavolana microservices be dia be dia te-hanaisotra sanda fanampiny avy amin'ny fanamarihana an-tsoratra ianao. Ohatra, mifototra amin'ny RAML/Swagger, azonao atao ny mamorona kaody mpanjifa sy mpizara amin'ny fiteny fandaharana marobe. Azonao atao ihany koa ny mandray antontan-taratasy ho azy ho an'ny microservice ary mampakatra izany ao amin'ny vavahadin-tseraseranao :).

Ka RAML sa OAS (Swagger)?
Ohatra amin'ny famaritana fifanarahana voarafitra

Tsy dia fahita firy ny fanaovana fitiliana microservices mifototra amin'ny famaritana fifanarahana. Raha samy nanoratra annotation sy singa iray ianao dia afaka mamorona autotest izay manamarina ny fahatomombanan'ny serivisy miaraka amin'ireo karazana angona fampidirana. Mamerina kaody valinteny tsy voalaza ao amin'ny fanamarihana ve ny serivisy? Ho afaka handamina araka ny tokony ho izy ny angona mazava ho azy fa diso?

Ankoatr'izay, ny fampiharana avo lenta dia tsy ny fifanarahana ihany, fa ny fitaovana ho an'ny fijerena annotation koa dia ahafahana manatsotra ny asa miaraka amin'ny microservice. Izany hoe, raha nanoritsoritra ny fifanarahana ny mpanao mari-trano, mifototra amin'izany, ny mpamorona sy ny mpamorona dia hampihatra ny serivisy amin'ny vokatra hafa tsy misy fandaniana fotoana fanampiny.

Mba hahafahan'ny fitaovana fanampiny, RAML sy OAS dia afaka manampy metadata tsy omen'ny fenitra (ohatra hoe toy izao no atao amin'ny OAS).

Amin'ny ankapobeny, ny sehatra ho an'ny famoronana amin'ny fampiasana fifanarahana ho an'ny microservices dia lehibe ... farafaharatsiny amin'ny teoria.

Fampitahana ny sokina amin'ny bibilava

Amin'izao fotoana izao, ny sehatra fampandrosoana laharam-pahamehana ao Acronis dia ny fampandrosoana ny Acronis Cyber ​​​​Platform. Acronis Cyber ​​​​Platform dia teboka vaovao fampidirana serivisy an'ny antoko fahatelo miaraka amin'ny Acronis Cyber ​​​​Cloud sy ny ampahany amin'ny mpandraharaha. Na dia faly aza izahay tamin'ny API anatiny nofaritana tao amin'ny RAML, ny filana ny famoahana ny API indray dia nametraka ny fanontaniana momba ny safidy: inona no fenitry ny fanamarihana tsara indrindra ampiasaina amin'ny asantsika?

Tany am-boalohany dia toa nisy vahaolana roa - ny fivoarana mahazatra indrindra dia RAML sy Swagger (na OAS). Saingy raha ny marina dia hita fa tsy misy safidy 2 farafaharatsiny, fa 3 na mihoatra.

Amin'ny lafiny iray dia misy RAML - fiteny matanjaka sy mahomby. Mampihatra tsara ny ambaratongam-pahefana sy ny lova izy io, ka ity format ity dia mety kokoa ho an'ny orinasa lehibe mila famaritana be dia be - izany hoe tsy vokatra iray, fa microservices maro izay manana ampahany iraisana amin'ny fifanarahana - rafitra fanamarinana, karazana data mitovy, vatana diso. .

Fa ny mpamorona ny RAML, Mulesoft, dia nanatevin-daharana ny Open API consortium, izay mivoatra miavonavona. Noho izany, nampiato ny fivoarany ny RAML. Mba alaivo sary an-tsaina ny endriky ny hetsika, alaivo sary an-tsaina fa ireo mpikarakara ny singa Linux lehibe dia nandao hiasa ho an'ny Microsoft. Ity toe-javatra ity dia mamorona ny fepetra takiana amin'ny fampiasana Swagger, izay mivoatra amin'ny fomba mavitrika sy amin'ny farany - dikan-teny fahatelo - dia mihatra amin'ny RAML amin'ny resaka flexibility sy fampiasa.

Raha tsy noho ny zavatra iray...

Raha ny fandehany fa tsy ny fitaovana open-source rehetra no nohavaozina amin'ny OAS 3.0. Ho an'ny microservices ao amin'ny Go, ny zava-dehibe indrindra dia ny tsy fisian'ny fampifanarahana mandeha-swagger ho an'ny kinova farany amin'ny fenitra. Na izany aza, ny maha samy hafa ny Swagger 2 sy ny Swagger 3 dia goavana. Ohatra, ao amin'ny dikan-teny fahatelo ny mpamorona:

  • famaritana tsara kokoa ny tetika fanamarinana
  • vita Fanohanana JSON Schema
  • nanatsara ny fahafahana manampy ohatra

Mampihomehy ny toe-javatra: rehefa misafidy fenitra ianao dia mila mihevitra ny RAML, Swagger 2 ary Swagger 3 ho safidy hafa. Na izany aza, ny Swagger 2 ihany no manana fanohanana tsara ho an'ny fitaovana OpenSource. Ny RAML dia tena malefaka...ary saro-takarina, ary ny Swagger 3 dia tsy tohanan'ny vondrom-piarahamonina, ka tsy maintsy mampiasa fitaovana manokana na vahaolana ara-barotra, izay mirona ho lafo be.

Ankoatra izany, raha misy endri-javatra mahafinaritra maro ao amin'ny Swagger, toy ny vavahadin-tserasera efa vita editor.swagger.io, izay ahafahanao mampakatra annotation sy maka sary miaraka amin'ny famaritana amin'ny antsipiriany, rohy ary fifandraisana, avy eo ho an'ny RAML fototra sy tsy dia sariaka kokoa dia tsy misy fotoana toy izany. Eny, azonao atao ny mikaroka zavatra amin'ny tetikasa ao amin'ny GitHub, mitadiava analogue ao ary apetraho izany. Na izany aza, na ahoana na ahoana, misy olona tsy maintsy mitazona ny vavahadin-tserasera, izay tsy dia mety loatra amin'ny fampiasana fototra na filΓ na fitsapana. Fanampin'izany, ny swagger dia "tsy misy fitsipika", na liberaly kokoa - azo avoaka avy amin'ny fanehoan-kevitra ao amin'ny fehezan-dalΓ na, izay mazava ho azy fa mifanohitra amin'ny fitsipika voalohany API ary tsy tohanan'ny fitaovana RAML.

Tamin'ny fotoana iray dia nanomboka niasa tamin'ny RAML ho fiteny mora kokoa izahay, ary vokatr'izany dia tsy maintsy nanao zavatra maro izahay. Ohatra, ny iray amin'ireo tetikasa dia mampiasa ny utility ramlfications amin'ny fitsapana unit, izay tsy manohana afa-tsy RAML 0.8. Noho izany dia tsy maintsy nanampy tehina izahay mba hahafahan'ny fitaovana "mihinana" RAML version 1.0.

Mila misafidy ve ianao?

Rehefa avy niasa tamin'ny famitana ny ekΓ΄sistema vahaolana ho an'ny RAML izahay, dia tonga tamin'ny fanatsoahan-kevitra fa mila mamadika ny RAML ho Swagger 2 izahay ary manatanteraka ny automation, ny fanamarinana, ny fitsapana ary ny fanatsarana manaraka ao anatiny. Ity dia fomba tsara hampiasana ny fahafahan'ny RAML sy ny fanohanan'ny vondrom-piarahamonina avy amin'ny Swagger.

Mba hamahana ity olana ity dia misy fitaovana OpenSource roa izay tokony hanome fiovam-pifanarahana:

  1. oas-raml-converter dia fitaovana tsy tohana amin'izao fotoana izao. Nandritra ny fiaraha-miasa taminy dia hitanay fa manana olana maromaro amin'ny RAML sarotra izay "miparitaka" amin'ny rakitra marobe. Ity programa ity dia nosoratana tamin'ny JavaScript ary manao dian-tongotra miverimberina amin'ny hazo syntax. Noho ny fanoratana mavitrika dia lasa sarotra ny mahazo an'io kaody io, ka nanapa-kevitra izahay fa tsy handany fotoana hanoratra patch ho an'ny fitaovana efa ho faty.
  2. webapi-parser - fitaovana avy amin'ny orinasa iray izay milaza fa vonona ny hanova ny zava-drehetra sy ny zava-drehetra, ary amin'ny lafiny rehetra. Hatramin'izao, nambara ny fanohanana ny RAML 0.8, RAML 1.0 ary Swagger 2.0. Na izany aza, tamin'ny fotoana nanaovanay fikarohana dia mbola tsy nisy ny fitaovana tena mando sy tsy azo ampiasaina. Mamorona karazana IR, ahafahan'izy ireo manampy haingana ireo fenitra vaovao amin'ny ho avy. Saingy hatramin'izao dia tsy mandeha.

Ary tsy izany ihany no olana sedrainay. Ny iray amin'ireo dingana ao amin'ny fantsonay dia ny manamarina fa marina ny RAML avy amin'ny tahiry mifandraika amin'ny famaritana. Nanandrana fitaovana maro izahay. Mahagaga fa samy nianiana tamin'ny fanamarihanay tany amin'ny toerana samihafa sy tamin'ny teny ratsy hafa tanteraka izy ireo. Ary tsy tonga amin'ny teboka foana :).

Tamin'ny farany dia nanorim-ponenana tamin'ny tetikasa efa lany andro izahay, izay manana olana maro ihany koa (indraindray dia mipoitra tampoka izany, manana olana rehefa miasa amin'ny fomba fiteny mahazatra). Noho izany, tsy nahita fomba hamahana ny olana momba ny fanamarinana sy ny fiovam-po mifototra amin'ny fitaovana maimaim-poana izahay, ary nanapa-kevitra ny hampiasa fitaovana ara-barotra. Amin'ny ho avy, rehefa lasa matotra kokoa ny fitaovana OpenSource, dia mety ho mora kokoa ny hamahana ity olana ity. Mandritra izany fotoana izany, ny vola lany amin'ny asa sy ny fotoana ho an'ny "famitana" dia toa manan-danja kokoa noho ny vidin'ny serivisy ara-barotra.

famaranana

Taorian'izany rehetra izany dia te hizara ny traikefanay izahay ary marihina fa alohan'ny hisafidianana fitaovana iray hamaritana ny fifanarahana dia mila mamaritra mazava tsara izay tadiavinao amin'izany ianao sy ny teti-bola tianao hampiasaina. Raha adinontsika ny OpenSource dia efa misy serivisy sy vokatra marobe izay hanampy anao hanamarina, hanova ary hanamarina. Lafo anefa izy ireny, ary lafo be indraindray. Ho an'ny orinasa lehibe dia azo leferina ny fandaniana toy izany, fa ho an'ny fanombohana dia mety ho lasa enta-mavesatra lehibe izy ireo.

Farito ny fitaovana ampiasainao any aoriana. Ohatra, raha mila mampiseho fifanarahana fotsiny ianao dia ho mora kokoa ny mampiasa Swagger 2, izay manana API tsara tarehy, satria ao amin'ny RAML dia tsy maintsy manangana sy mitazona ny serivisy ianao.
Arakaraka ny asa bebe kokoa anananao no hihalasa kokoa ny filana fitaovana, ary tsy mitovy amin'ny sehatra samihafa izy ireo, ary tsara kokoa ny mahafantatra avy hatrany ireo dikan-teny misy mba hanaovana safidy izay mampihena ny fandanianao amin'ny ho avy.

Mila ekena anefa fa tsy lavorary ny tontolo iainana rehetra misy ankehitriny. Noho izany, raha misy mpankafy ao amin'ny orinasa tia miasa amin'ny RAML satria "mamela anao haneho hevitra amin'ny fomba malefaka kokoa", na, mifanohitra amin'izany, aleony Swagger satria "mazava kokoa", dia tsara kokoa ny mamela azy ireo hiasa. amin'ny maha-izy azy Izy ireo dia zatra izany ary maniry izany, satria ny fitaovana amin'ny endrika rehetra dia mitaky fanovana amin'ny rakitra iray.

Raha ny traikefantsika, amin'ireto lahatsoratra manaraka ireto dia hiresaka momba ny fisavana static sy mavitrika ataontsika isika mifototra amin'ny maritrano RAML-Swagger, ary koa ny antontan-taratasy avoakantsika avy amin'ny fifanarahana, ary ny fomba fiasa rehetra.

Ireo mpampiasa voasoratra anarana ihany no afaka mandray anjara amin'ny fanadihadiana. HiditraPlease.

Inona no fiteny ampiasainao hanoratana ny fifanarahana microservice?

  • RAML 0.8

  • RAML 1.0

  • Sambory 2

  • OAS3 (aka)

  • rafitra

  • hafa

  • Tsy mampiasa

Mpampiasa 100 no nifidy. Mpampiasa 24 no nifady.

Source: www.habr.com

Add a comment