Ndiye ndi RAML kapena OAS (Swagger)?

M'dziko lamphamvu la microservices, chirichonse chingasinthe-chinthu chilichonse chikhoza kulembedwanso m'chinenero chosiyana, pogwiritsa ntchito machitidwe osiyanasiyana ndi zomangamanga. Mapangano okhawo ayenera kukhala osasinthika kotero kuti microservice ikhoza kulumikizidwa kuchokera kunja kwanthawi zonse, mosasamala kanthu za metamorphoses mkati. Ndipo lero tikambirana za vuto lathu losankha mtundu wofotokozera mapangano ndikugawana zomwe tapeza.

Ndiye ndi RAML kapena OAS (Swagger)?

Zolemba zakonzedwa Anna Melekhova ΠΈ Vladimir Lapatin

Microservices. Popanga Acronis Cyber ​​​​Cloud, tidazindikira kuti sitingathe kuwathawa. Ndipo kupanga microservice sikutheka popanda kukhazikitsa mgwirizano, womwe umayimira mawonekedwe a microservice.

Koma pamene chinthu chili ndi zigawo zingapo, ndipo kupanga mgwirizano kumakhala chinthu chokhazikika, simungachitire mwina koma kuyamba kuganiza za kukhathamiritsa kwa ndondomeko. Zikuwonekeratu kuti mawonekedwe (mgwirizano) ndi kukhazikitsa (microservice) ziyenera kufanana, kuti zigawo zosiyana ziyenera kuchita zinthu zofanana mofanana, komanso kuti popanda kupanga chisankho pakati pa zisankho zonsezi, gulu lirilonse lidzakakamizika kuchita zinthu zofanana. cheza mobwerezabwereza kuti uwatenge .

Ndiye ndi RAML kapena OAS (Swagger)?
Chithunzi cha Amazon microservices kuchokera tweet Werner Vogelis, CTO Amazon
Kodi vuto ndi chiyani? Inde, pali njira ziwiri zolumikizirana ndi ma microservices - HTTP Rest ndi gRPC kuchokera ku Google. Posafuna kugwidwa ndiukadaulo wa Google, tidasankha HTTP Rest. Ndemanga za mgwirizano wa HTTP REST nthawi zambiri zimafotokozedwa mu imodzi mwamitundu iwiri: RAML ndi OAS, yomwe kale inkadziwika kuti Swagger. Koma monga momwe zikukhalira, kupanga chisankho ichi kungakhale kovuta kwambiri.

N'chifukwa chiyani zizindikiro zimafunika?

Ndemanga ndiyofunikira kuti wogwiritsa ntchito akunja athe kudziwa zomwe zingachitike ndi ntchito yanu kudzera mu mawonekedwe ake a HTTP. Ndiko kuti, pamlingo woyambira, zofotokozerazo ziyenera kukhala ndi mndandanda wazinthu zomwe zilipo, njira zawo za HTTP, mabungwe ofunsira, mndandanda wa magawo, chizindikiritso cha mitu yofunikira ndi yothandizidwa, komanso ma code obwerera ndi mawonekedwe oyankha. Chinthu chofunikira kwambiri pazankho la mgwirizano ndi kufotokozera kwawo ("chimachitika ndi chiyani ngati muwonjezera funsoli pa pempho?", "Kodi nambala 400 idzabwezeredwa bwanji?")

Komabe, zikafika pakupanga ma microservices ambiri, mukufuna kutulutsa mtengo wowonjezera pamawu olembedwa. Mwachitsanzo, kutengera RAML/Swagger, mutha kupanga kasitomala ndi ma code a seva mu zilankhulo zambiri zamapulogalamu. Mutha kulandiranso zolembedwa za microservice ndikuziyika ku doko lanu lopanga :).

Ndiye ndi RAML kapena OAS (Swagger)?
Chitsanzo cha mafotokozedwe opangidwa mwadongosolo

Chochepa kwambiri ndi mchitidwe woyesa ma microservices potengera mafotokozedwe a mgwirizano. Ngati mwalemba zonse zofotokozera komanso gawo, ndiye kuti mutha kupanga autotest yomwe imayang'ana kukwanira kwa ntchitoyo ndi mitundu yosiyanasiyana ya data yolowera. Kodi ntchitoyo imabweza khodi yoyankhira yomwe sinafotokozedwe m'mawu? Kodi idzatha kukonza molondola zomwe mwachiwonekere ndi zolakwika?

Kuphatikiza apo, kukhazikitsa kwapamwamba osati mapangano okha, komanso zida zowonera zofotokozera zimapangitsa kuti ntchito ikhale yosavuta ndi microservice. Ndiko kuti, ngati womangayo adalongosola mgwirizanowu mwapamwamba kwambiri, kutengera izo, okonza ndi opanga adzagwiritsa ntchito ntchitoyi muzinthu zina popanda ndalama zowonjezera nthawi.

Kuti mutsegule zida zowonjezera, onse RAML ndi OAS ali ndi kuthekera kowonjezera metadata yosaperekedwa ndi muyezo (mwachitsanzo, umu ndi momwe zimachitikira ku OAS).

Nthawi zambiri, kuchuluka kwa luso logwiritsa ntchito makontrakitala a microservices ndikwambiri ... osachepera m'malingaliro.

Kuyerekeza kwa hedgehog ndi njoka

Pakadali pano, gawo loyamba lachitukuko ku Acronis ndikukula kwa Acronis Cyber ​​​​Platform. Acronis Cyber ​​​​Platform ndi mfundo zatsopano zophatikizira ntchito za chipani chachitatu ndi Acronis Cyber ​​​​Cloud ndi gawo la wothandizira. Ngakhale tinali okondwa ndi ma API athu amkati omwe adafotokozedwa mu RAML, kufunika kofalitsa API kunadzutsanso funso losankha: ndi mulingo uti wofotokozera womwe uyenera kugwiritsidwa ntchito bwino pantchito yathu?

Poyambirira, zinkawoneka kuti pali njira ziwiri - zomwe zimachitika kwambiri ndi RAML ndi Swagger (kapena OAS). Koma kwenikweni zidapezeka kuti pali njira zina zosachepera ziwiri, koma 2 kapena kupitilira apo.

Kumbali imodzi pali RAML - chilankhulo champhamvu komanso chothandiza. Imagwiritsira ntchito maulamuliro ndi cholowa bwino, kotero mawonekedwewa ndi oyenera makampani akuluakulu omwe amafunikira mafotokozedwe ambiri - ndiko kuti, osati chinthu chimodzi, koma ma microservices ambiri omwe ali ndi magawo ofanana a mgwirizano - ndondomeko zovomerezeka, mitundu yofanana ya deta, mabungwe olakwika. .

Koma wopanga RAML, Mulesoft, walowa nawo Open API consortium, yomwe ikukula swagger. Chifukwa chake, RAML idayimitsa chitukuko chake. Kuti muganizire mawonekedwe a chochitikacho, yerekezerani kuti osamalira zigawo zazikulu za Linux atsala kuti azigwira ntchito ku Microsoft. Izi zimapanga zofunikira pakugwiritsa ntchito Swagger, yomwe ikukula mwamphamvu komanso yaposachedwa - mtundu wachitatu - imagwirizana ndi RAML potengera kusinthasintha ndi magwiridwe antchito.

Ngati sichoncho ...

Zotsatira zake, sizinthu zonse zotseguka zomwe zasinthidwa kukhala OAS 3.0. Kwa ma microservices mu Go, chinthu chofunikira kwambiri chidzakhala kusasinthika kupita-swagger za mtundu waposachedwa wa muyezo. Komabe, kusiyana pakati pa Swagger 2 ndi Swagger 3 ndiko chachikulu. Mwachitsanzo, mu mtundu wachitatu opanga:

  • kufotokozera bwino za ziwembu zotsimikizira
  • kumaliza Thandizo la JSON Schema
  • onjezerani luso lowonjezera zitsanzo

Zinthu ndizoseketsa: posankha muyezo, muyenera kuganizira za RAML, Swagger 2 ndi Swagger 3 ngati njira zina zosiyana. Komabe, Swagger 2 yokha ndiyomwe imathandizira zida za OpenSource. RAML ndi yosinthika kwambiri...ndi yovuta, ndipo Swagger 3 siyimathandizidwa bwino ndi anthu ammudzi, kotero muyenera kugwiritsa ntchito zida kapena njira zamalonda, zomwe zimakhala zodula.

Komanso, ngati pali zinthu zambiri zabwino mu Swagger, monga portal yopangidwa kale mkonzi.swagger.io, pomwe mutha kukweza mawu ndikuwona mawonekedwe ake ndi kufotokozera mwatsatanetsatane, maulalo ndi maulumikizidwe, ndiye kuti RAML yofunikira komanso yosachezeka palibe mwayi wotero. Inde, mutha kusaka china chake pakati pa ma projekiti pa GitHub, pezani analogi pamenepo ndikudzipatulira nokha. Komabe, mulimonse momwe zingakhalire, wina amayenera kusunga portal, yomwe siili yabwino kugwiritsa ntchito kapena kuyesa zofunikira. Kuphatikiza apo, swagger ndi "yopanda mfundo", kapena yowolowa manja - imatha kupangidwa kuchokera ku ndemanga zomwe zili mu code, zomwe, ndithudi, zimatsutsana ndi mfundo yoyamba ya API ndipo sizimathandizidwa ndi zina za RAML.

Panthawi ina tinayamba kugwira ntchito ndi RAML monga chinenero chosinthika, ndipo chifukwa chake tinayenera kuchita zinthu zambiri tokha. Mwachitsanzo, imodzi mwa mapulojekiti omwe amagwiritsa ntchito ramlifications m'mayeso a unit, omwe amangothandizira RAML 0.8. Chifukwa chake tidayenera kuwonjezera ndodo kuti zofunikira "zidye" mtundu wa RAML 1.0.

Kodi muyenera kusankha?

Titagwira ntchito yomaliza njira zothetsera zamoyo za RAML, tidafika potsimikiza kuti tifunika kusintha RAML kukhala Swagger 2 ndikuchita zonse zokha, kutsimikizira, kuyesa ndi kukhathamiritsa kotsatiramo. Iyi ndi njira yabwino yopititsira patsogolo kusinthasintha kwa RAML komanso chithandizo chamagulu ammudzi kuchokera ku Swagger.

Kuti athetse vutoli, pali zida ziwiri za OpenSource zomwe ziyenera kupereka kutembenuka kwa mgwirizano:

  1. oas-raml-converter ndi chida chomwe sichinagwiritsidwe ntchito pano. Tikugwira nawo ntchito, tidapeza kuti ili ndi zovuta zingapo ndi ma RAML ovuta omwe "amafalikira" pamafayilo ambiri. Pulogalamuyi imalembedwa mu JavaScript ndipo imayenda mobwerezabwereza pamtengo wa syntax. Chifukwa cha kulemba kwamphamvu, zimakhala zovuta kumvetsetsa kachidindo kameneka, choncho tinaganiza kuti tisataye nthawi polemba zigamba za chinthu chomwe chatsala pang'ono kufa.
  2. webapi-parser - chida chochokera ku kampani yomweyi yomwe imati ndi yokonzeka kutembenuza chirichonse ndi chirichonse, ndi mbali iliyonse. Mpaka pano, thandizo lalengezedwa la RAML 0.8, RAML 1.0 ndi Swagger 2.0. Komabe, panthawi ya kafukufuku wathu, zothandizira zinali zidakalipo KWAMBIRI yonyowa komanso yosagwiritsidwa ntchito. Madivelopa amapanga mtundu wa IR, kuwalola kuti awonjezere mwamsanga miyezo yatsopano m'tsogolomu. Koma mpaka pano sizikugwira ntchito.

Ndipo sizovuta zonse zomwe tidakumana nazo. Chimodzi mwamasitepe omwe ali mupaipi yathu ndikutsimikizira kuti RAML yochokera kumalo osungirako ndi yolondola mogwirizana ndi zomwe zafotokozedwa. Tinayesa zothandiza zingapo. Chodabwitsa n'chakuti onse adalumbirira zolemba zathu m'malo osiyanasiyana komanso ndi mawu oipa. Ndipo osati nthawi zonse :).

Pamapeto pake, tidakhazikika pa projekiti yachikale, yomwe ilinso ndi zovuta zingapo (nthawi zina zimawonongeka, zimakhala ndi zovuta pogwira ntchito ndi mawu okhazikika). Choncho, sitinapeze njira yothetsera mavuto ovomerezeka ndi kutembenuka pogwiritsa ntchito zida zaulere, ndipo tinaganiza zogwiritsa ntchito malonda. M'tsogolomu, pamene zida za OpenSource zikukula kwambiri, vutoli likhoza kukhala losavuta kuthetsa. Pakalipano, ndalama zogwirira ntchito ndi nthawi za "kumaliza" zinkawoneka kwa ife kukhala zofunika kwambiri kuposa mtengo wa ntchito yamalonda.

Pomaliza

Pambuyo pa zonsezi, tinkafuna kugawana zomwe takumana nazo ndikuzindikira kuti musanasankhe chida chofotokozera makontrakitala, muyenera kufotokozera momveka bwino zomwe mukufuna kuchokera ndi bajeti yomwe mukufuna kuyikapo. Ngati tiyiwala za OpenSource, pali kale mautumiki ambiri ndi zinthu zomwe zingakuthandizeni kufufuza, kutembenuza, ndi kutsimikizira. Koma ndi okwera mtengo, ndipo nthawi zina okwera mtengo kwambiri. Kwa kampani yayikulu, ndalama zotere ndizovomerezeka, koma poyambira zimatha kukhala cholemetsa chachikulu.

Sankhani zida zomwe mudzagwiritse ntchito pambuyo pake. Mwachitsanzo, ngati mukungofunika kusonyeza mgwirizano, zidzakhala zosavuta kugwiritsa ntchito Swagger 2, yomwe ili ndi API yokongola, chifukwa mu RAML mudzayenera kumanga ndi kusunga utumiki nokha.
Ntchito zambiri zomwe muli nazo, kufunikira kwa zida kudzakhala kokulirapo, ndipo ndizosiyana pamapulatifomu osiyanasiyana, ndipo ndikwabwino kudzidziwitsa nokha ndi matembenuzidwe omwe alipo kuti mupange chisankho chomwe chimachepetsa ndalama zanu mtsogolo.

Koma m’poyenera kuzindikira kuti zamoyo zonse zimene zilipo masiku ano n’zopanda ungwiro. Choncho, ngati pali mafani mu kampani omwe amakonda kugwira ntchito ku RAML chifukwa "amakulolani kufotokoza maganizo anu momasuka," kapena, m'malo mwake, amakonda Swagger chifukwa "ndizomveka," ndi bwino kuwasiya kuti agwire ntchito. momwe alili Amazolowera ndikuzifuna, chifukwa zida zamitundu iliyonse zimafunikira kusinthidwa ndi fayilo.

Ponena za zomwe takumana nazo, m'magawo otsatirawa tidzakambirana za macheke osasunthika komanso osinthika omwe timachita potengera kapangidwe kathu ka RAML-Swagger, komanso zolemba zomwe timapanga kuchokera kumakontrakitala, ndi momwe zimagwirira ntchito.

Ogwiritsa ntchito olembetsedwa okha ndi omwe angatenge nawo gawo pa kafukufukuyu. Lowani muakauntichonde.

Kodi mumagwiritsa ntchito chilankhulo chanji pofotokozera ma contract a microservice?

  • RAML 0.8

  • RAML 1.0

  • Swagger 2

  • OAS3 (aka)

  • Chojambula

  • Zina

  • Osagwiritsa ntchito

Ogwiritsa ntchito 100 adavota. Ogwiritsa 24 adakana.

Source: www.habr.com

Kuwonjezera ndemanga