Ya mere ọ bụ RAML ma ọ bụ OAS (Swagger)?

N'ime ụwa dị ike nke microservices, ihe ọ bụla nwere ike ịgbanwe-ihe ọ bụla nwere ike idegharị n'asụsụ dị iche iche, na-eji usoro dị iche iche na ụkpụrụ ụlọ. Naanị nkwekọrịta kwesịrị ịdị na-agbanwe agbanwe ka microservice wee na-emekọrịta ihe site na mpụga na-adịgide adịgide, n'agbanyeghị metamorphoses dị n'ime. Ma taa, anyị ga-ekwu maka nsogbu anyị nke ịhọrọ usoro maka ịkọwa nkwekọrịta ma kesaa ihe ndị anyị chọtara.

Ya mere ọ bụ RAML ma ọ bụ OAS (Swagger)?

A kwadoro akwụkwọ ozi Anna Melekhova и Vladimir Lapatin

Microservices. Mgbe anyị na-etolite Acronis Cyber ​​​​Cloud, anyị chọpụtara na anyị enweghị ike ịgbanarị ha. Na ịmepụta microservice agaghị ekwe omume na-enweghị ịhazi nkwekọrịta ahụ, nke na-anọchite anya interface nke microservice.

Ma mgbe ngwaahịa nwere ihe karịrị otu akụrụngwa, na mmepe nkwekọrịta na-aghọ ọrụ mgbe niile, ị pụghị inye aka ma malite iche echiche banyere njikarịcha usoro. Ọ na-aghọ doro anya na interface (nkwekọrịta) na mmejuputa iwu (microservice) ga-adabara onye ọ bụla ọzọ, na dị iche iche components ga-eme otu ihe ahụ n'otu ụzọ ahụ, na na-enweghị a centralized mkpebi mkpebi ndị a niile, onye ọ bụla otu ga-amanye. wepụta oge ugboro ugboro iji nweta ha.

Ya mere ọ bụ RAML ma ọ bụ OAS (Swagger)?
Ihe osise Amazon microservices si tweet Werner Vogelis, CTO Amazon
Gịnị bụ nsogbu? N'ezie, enwere ụzọ abụọ iji mekọrịta microservices - HTTP Rest na gRPC sitere na Google. N'ịchọghị ịbanye na nchịkọta teknụzụ Google, anyị họọrọ HTTP Rest. A na-akọwakarị nkọwa nkwekọrịta HTTP REST n'otu n'ime ụdị abụọ: RAML na OAS, nke a na-akpọbu Swagger. Ya mere, ndị otu mmepe ọ bụla na-eche mkpa ịhọrọ otu n'ime ụkpụrụ. Ma dị ka ọ na-apụta, ime nhọrọ a nwere ike isi ike.

Kedu ihe kpatara achọrọ nkọwa?

Achọrọ nkọwapụta ahụ ka onye ọrụ mpụga wee nwee ike ịchọpụta ihe enwere ike iji ọrụ gị mee site na interface HTTP ya. Nke ahụ bụ, na ọkwa dị mkpa, nkọwa ahụ ga-enwerịrị opekata mpe ndepụta nke akụrụngwa dị, ụzọ HTTP ha, ozu arịrịọ, ndepụta nke paramita, ihe ngosi nke ndị nkụnye eji isi mee achọrọ na akwadoro, yana koodu nloghachi na ụdị nzaghachi. Otu ihe dị oke mkpa nke nkọwa nkwekọrịta bụ nkọwa okwu ha ("kedu ihe ga-eme ma ọ bụrụ na ị gbakwunye ajụjụ a na arịrịọ a?", "N'ọnọdụ dị aṅaa ka a ga-eweghachi koodu 400?")

Otú ọ dị, mgbe a bịara n'ịmepụta ọnụ ọgụgụ dị ukwuu nke microservices, ịchọrọ iwepụ uru ọzọ na nkọwa ederede. Dịka ọmụmaatụ, dabere na RAML/Swagger, ị nwere ike ịmepụta ma onye ahịa yana koodu nkesa n'ọtụtụ asụsụ mmemme. Ị nwekwara ike nata akwụkwọ na-akpaghị aka maka microservice wee bulite ya na portal onye nrụpụta gị :).

Ya mere ọ bụ RAML ma ọ bụ OAS (Swagger)?
Ọmụmaatụ nke nkọwa nkwekọrịta ahaziri

Ihe na-adịkarị obere bụ omume nke ịnwale obere ọrụ dabere na nkọwa nkwekọrịta. Ọ bụrụ na ịdela ma nkọwapụta na akụrụngwa, mgbe ahụ ị nwere ike ịmepụta autotest nke na-enyocha ike nke ọrụ ahụ na ụdị ntinye dị iche iche. Ọrụ ahụ ọ na-eweghachi koodu nzaghachi nke akọwaghị na nkọwapụta? Ọ ga-enwe ike hazie data ezighi ezi nke ọma?

Ọzọkwa, mmejuputa ihe dị elu nke ọ bụghị naanị nkwekọrịta n'onwe ha, kamakwa ngwá ọrụ maka ịhụ nkọwa nkọwa na-eme ka ọ dị mfe iji ọrụ microservice dị mfe. Nke ahụ bụ, ọ bụrụ na onye na-ese ụkpụrụ ụlọ kọwara nkwekọrịta ahụ n'ụzọ dị elu, dabere na ya, ndị na-emepụta ihe na ndị mmepe ga-emejuputa ọrụ ahụ na ngwaahịa ndị ọzọ na-enweghị ụgwọ oge ọzọ.

Iji mee ka ngwaọrụ ndị ọzọ nwee ike, RAML na OAS nwere ike ịgbakwunye metadata esiteghị na ọkọlọtọ.ọmụmaatụ, otu a ka esi eme ya na OAS).

N'ozuzu, ohere maka imepụta ihe n'iji nkwekọrịta maka microservices dị ukwuu ... ma ọ dịkarịa ala na tiori.

Tụnyere oke nku na agwo

Ugbu a, mpaghara mmepe kacha mkpa na Acronis bụ mmepe nke Acronis Cyber ​​​​Platform. Acronis Cyber ​​​​Platform bụ isi mmalite nke njikọta nke ọrụ ndị ọzọ na Acronis Cyber ​​​​Cloud na akụkụ ndị nnọchi anya. N'agbanyeghi na anyi nwere obi uto na API ime anyi akowara na RAML, mkpa ibiputa API welitere ajuju nke nhọrọ: Kedu ọkọlọtọ nkọwa kacha mma iji maka ọrụ anyị?

Na mbụ, ọ dị ka enwere ụzọ abụọ - ihe ndị a na-emekarị bụ RAML na Swagger (ma ọ bụ OAS). Mana n'ezie ọ tụgharịrị na ọ dịkarịa ala ọ bụghị 2 ọzọ, mana 3 ma ọ bụ karịa.

N'otu aka ahụ enwere RAML - asụsụ dị ike na nke ọma. Ọ na-emejuputa usoro nhazi na ihe nketa nke ọma, ya mere usoro a dabara adaba maka nnukwu ụlọ ọrụ ndị chọrọ ọtụtụ nkọwa - ya bụ, ọ bụghị otu ngwaahịa, ma ọtụtụ microservices nke nwere akụkụ nke nkwekọrịta - atụmatụ nyocha, otu ụdị data, ụdị njehie. .

Mana onye nrụpụta RAML, Mulesoft, abanyela na njikọ Open API, nke na-emepe emepe swagger. Ya mere, RAML kwụsịtụrụ mmepe ya. Iji chepụta usoro ihe omume ahụ, were ya na ndị na-echekwa ihe ndị bụ isi Linux hapụrụ ịrụ ọrụ na Microsoft. Ọnọdụ a na-emepụta ihe achọrọ maka iji Swagger, nke na-etolite n'ike n'ike na nke kachasị ọhụrụ - nke atọ - na-ejide RAML n'ihe gbasara mgbanwe na ịrụ ọrụ.

Ọ bụrụ na ọ bụghị maka otu ihe ...

Dịka ọ siri pụta, ọ bụghị ngwa ọrụ mepere emepe ka emelitere na OAS 3.0. Maka microservices na Go, ihe kachasị mkpa ga-abụ enweghị mgbanwe aga-swagger maka ụdị ọkọlọtọ kachasị ọhụrụ. Agbanyeghị, ọdịiche dị n'etiti Swagger 2 na Swagger 3 bụ nnukwu. Dịka ọmụmaatụ, na ụdị nke atọ ndị mmepe:

  • nkọwa nke atụmatụ nyocha emelitere
  • emechara Nkwado Schema JSON
  • kwalitere ike ịgbakwunye ihe atụ

Ọnọdụ ahụ na-atọ ọchị: mgbe ị na-ahọrọ ọkọlọtọ, ịkwesịrị ịtụle RAML, Swagger 2 na Swagger 3 dị ka ụzọ dị iche iche. Agbanyeghị, naanị Swagger 2 nwere ezigbo nkwado maka ngwa OpenSource. RAML na-agbanwe nke ukwuu...ma gbagwojuru anya, na Swagger 3 ndị obodo anaghị akwado ya, yabụ ị ga-eji ngwá ọrụ nwe ụlọ ma ọ bụ ngwọta azụmahịa, nke na-adịkarị ọnụ.

Ọzọkwa, ọ bụrụ na enwere ọtụtụ atụmatụ mara mma na Swagger, dị ka ọnụ ụzọ emebere nchịkọta akụkọ.swagger.io, nke ị nwere ike bulite nkọwa ma nweta nhụta ya na nkọwa zuru ezu, njikọ na njikọ, mgbe ahụ maka RAML ndị ọzọ dị mkpa na nke na-erughị enyi na-enweghị ohere dị otú ahụ. Ee, ị nwere ike ịchọ ihe n'etiti ọrụ dị na GitHub, chọta analog ebe ahụ wee bugharịa ya n'onwe gị. Agbanyeghị, n'ọnọdụ ọ bụla, mmadụ ga-edobe ọnụ ụzọ ahụ, nke na-adịghị mma maka ojiji bụ isi ma ọ bụ mkpa nnwale. Tụkwasị na nke ahụ, swagger bụ "enweghị ụkpụrụ", ma ọ bụ na-emesapụ aka karịa - enwere ike ịmepụta ya site na nkwupụta dị na koodu ahụ, nke, n'ezie, megidere ụkpụrụ API nke mbụ na nke ọ bụla nke RAML na-akwadoghị.

N'otu oge, anyị malitere ịrụ ọrụ na RAML dị ka asụsụ na-agbanwe agbanwe, n'ihi ya, anyị ga-eme ọtụtụ ihe n'onwe anyị. Dịka ọmụmaatụ, otu n'ime ọrụ ndị ahụ na-eji ọrụ ahụ ramfications N'ime ule otu, nke na-akwado naanị RAML 0.8. Yabụ na anyị ga-agbakwunye crutches ka akụrụngwa wee “rie” ụdị RAML 1.0.

Ịkwesịrị ịhọrọ?

N'ịbụ onye na-arụ ọrụ na-emecha gburugburu ebe obibi nke ngwọta maka RAML, anyị bịara ná nkwubi okwu na anyị kwesịrị ịgbanwe RAML n'ime Swagger 2 na-eme niile akpaaka, nkwenye, ule na ụdi njikarịcha na ya. Nke a bụ ụzọ dị mma isi tinye ma ngbanwe nke RAML yana nkwado ngwá ọrụ obodo sitere na Swagger.

Iji dozie nsogbu a, enwere ngwaọrụ OpenSource abụọ kwesịrị inye ntụgharị nkwekọrịta:

  1. oas-raml-ngbanwe bụ ngwa anaghị akwado ugbu a. Ka anyị na ya na-arụ ọrụ, anyị chọpụtara na ọ nwere ọtụtụ nsogbu na RAML dị mgbagwoju anya nke 'gbasara' n'elu ọnụ ọgụgụ buru ibu nke faịlụ. Edere mmemme a na Javascript ma na-eme njem nlegharị anya nke osisi syntax. N'ihi mpịnye dị ike, ọ na-esiri ike ịghọta koodu a, yabụ anyị kpebiri na anyị agaghị egbu oge iji dee ihe nkpuchi maka ngwa na-anwụ anwụ.
  2. webapi-parser - ngwá ọrụ sitere na otu ụlọ ọrụ na-ekwu na ọ dị njikere ịgbanwe ihe ọ bụla na ihe ọ bụla, na n'ụzọ ọ bụla. Ruo taa, ekwupụtala nkwado maka RAML 0.8, RAML 1.0 na Swagger 2.0. Agbanyeghị, n'oge nyocha anyị, akụrụngwa ahụ ka dị OKWU keguru mmiri na unu ejighi eme ihe. Ndị mmepe na-emepụta ụdị IR, na-enye ha ohere ịgbakwunye ụkpụrụ ọhụrụ ngwa ngwa n'ọdịnihu. Mana ruo ugbu a ọ naghị arụ ọrụ.

Ọ bụghịkwa ihe isi ike ndị ahụ anyị nwetara. Otu n'ime usoro dị na pipeline anyị bụ iji nyochaa na RAML sitere na ebe nchekwa ahụ ziri ezi n'ihe gbasara nkọwapụta. Anyị nwara ọtụtụ akụrụngwa. N'ụzọ dị ịtụnanya, ha niile ṅụrụ iyi na nkọwa anyị n'ebe dị iche iche na okwu ọjọọ dị iche iche. Ma ọ bụghị mgbe niile ruo n'ókè :).

N'ikpeazụ, anyị na-edozi ọrụ ugbu a bụ ihe ochie, nke nwekwara ọtụtụ nsogbu (mgbe ụfọdụ ọ na-adaba na-acha anụnụ anụnụ, nwere nsogbu mgbe ọ na-arụ ọrụ na okwu mgbe niile). Ya mere, anyị achọtaghị ụzọ isi dozie nsogbu nke nkwenye na ntụgharị dabere na ngwá ọrụ efu, ma kpebie iji ọrụ azụmahịa. N'ọdịnihu, ka OpenSource ngwaọrụ na-etolite etolite, nsogbu a nwere ike ịdị mfe idozi. Ka ọ dị ugbu a, ụgwọ ọrụ na ụgwọ oge maka "ịmecha" yiri anyị ka ọ dị mkpa karịa ụgwọ ọrụ azụmahịa.

nkwubi

Mgbe ihe a nile gasịrị, anyị chọrọ ịkọrọ ahụmahụ anyị ma rịba ama na tupu ịhọrọ ngwá ọrụ maka ịkọwa nkwekọrịta, ịkwesịrị ịkọwapụta nke ọma ihe ịchọrọ na ya na mmefu ego ị dị njikere itinye ego. Ọ bụrụ na anyị chefuo ihe OpenSource, enweelarị ọnụọgụ ọrụ na ngwaahịa ga-enyere gị aka ịlele, gbanwee ma kwado ya. Ma ha dị oke ọnụ, na mgbe ụfọdụ dị oke ọnụ. Maka nnukwu ụlọ ọrụ, ụgwọ ndị dị otú ahụ na-anabata, ma maka mmalite ha nwere ike ịghọ nnukwu ibu arọ.

Kpebie ngwa ọrụ ị ga-eji emechaa. Dịka ọmụmaatụ, ọ bụrụ na ịchọrọ igosipụta nkwekọrịta, ọ ga-adị mfe iji Swagger 2, nke nwere API mara mma, n'ihi na na RAML, ị ga-arụ ọrụ ahụ n'onwe gị.
Ọtụtụ ọrụ ị nwere, otú ahụ ka mkpa ngwá ọrụ ga-adịwanye ukwuu, ha dị iche iche maka ikpo okwu dị iche iche, ọ ka mma ozugbo ịmara onwe gị na nsụgharị ndị dịnụ iji mee nhọrọ nke na-ebelata ụgwọ gị n'ọdịnihu.

Ma, ọ bara uru ịghọta na ihe niile dị na gburugburu ebe obibi dị taa ezughị okè. Ya mere, ọ bụrụ na e nwere ndị Fans na ụlọ ọrụ na-amasị ịrụ ọrụ na RAML n'ihi na "ọ na-enye gị ohere ikwupụta echiche n'ụzọ dị nro," ma ọ bụ, n'ụzọ megidere nke ahụ, na-ahọrọ Swagger n'ihi na "ọ doro anya karị," ọ kacha mma ịhapụ ha ka ha rụọ ọrụ. n'ime ihe ha bụ Ha na-eji ya ma chọọ ya, n'ihi na ngwaọrụ nke ụdị ọ bụla chọrọ mgbanwe na faịlụ.

Banyere ahụmịhe anyị, n'ime akwụkwọ ndị a, anyị ga-ekwu maka nyocha dị ike na nke siri ike anyị na-eme dabere na ụkpụrụ ụlọ RAML-Swagger, yana akwụkwọ anyị na-ewepụta site na nkwekọrịta, yana otu ọ si arụ ọrụ.

Naanị ndị ọrụ edebanyere aha nwere ike isonye na nyocha a. banye, Biko.

Kedu asụsụ ị na-eji kọwaa nkwekọrịta microservice?

  • RAML 0.8

  • RAML 1.0

  • Swagger 2

  • OAS3 (aka)

  • Ihe ngosi

  • Ndị ọzọ

  • Anaghị eji

Ndị ọrụ 100 tụrụ vootu. Ndị ọrụ 24 anabataghị.

isi: www.habr.com

Tinye a comment