An RAML nó OAS (Swagger) é mar sin?

I saol dinimiciúil na micrisheirbhísí, is féidir aon rud a athrú - is féidir aon chomhpháirt a athscríobh i dteanga eile, ag baint úsáide as creataí agus ailtireacht éagsúil. Níor cheart go bhfanfadh ach conarthaí gan athrú ionas gur féidir idirghníomhú leis an micriseirbhís ón taobh amuigh ar bhonn buan éigin, beag beann ar mheiteamorfaí inmheánacha. Agus inniu beimid ag caint ar ár bhfadhb maidir le formáid a roghnú chun cur síos a dhéanamh ar chonarthaí agus na déantáin a fuaireamar a roinnt.

An RAML nó OAS (Swagger) é mar sin?

Post ullmhaithe Anna Melekhova и Vladimir Lapatin

Micreirbhísí. Agus Acronis Cyber ​​​​Cloud á fhorbairt, thuig muid nach bhféadfaimis éalú uathu. Agus tá sé dodhéanta microservice a dhearadh gan an conradh a fhoirmiú, rud a léiríonn comhéadan an mhicriseirbhíse.

Ach nuair a bhíonn níos mó ná comhpháirt amháin i dtáirge, agus nuair a bhíonn forbairt conartha ina ghníomhaíocht rialta, ní féidir leat cabhrú ach tosú ag smaoineamh ar optamú próisis. Tagann sé chun solais go gcaithfidh an comhéadan (conradh) agus cur i bhfeidhm (micreirbhís) a bheith ag teacht lena chéile, go gcaithfidh comhpháirteanna éagsúla na rudaí céanna a dhéanamh ar an mbealach céanna, agus gan cinneadh láraithe a dhéanamh ar na cinntí seo go léir, cuirfear iallach ar gach foireann. am a chaitheamh arís agus arís eile chun iad a fháil .

An RAML nó OAS (Swagger) é mar sin?
Léaráid microservices Amazon ó tweet Werner Vogelis, CTO Amazon
Cad é an aincheist? De facto, tá dhá bhealach chun idirghníomhú microservices - HTTP Rest agus gRPC ó Google. Gan a bheith ag iarraidh a bheith gafa i stack teicneolaíochta Google, roghnaigh muid HTTP Rest. Is minic a dhéantar cur síos ar nótaí conartha HTTP REST i gceann amháin de dhá fhormáid: RAML agus OAS, ar a dtugtaí Swagger roimhe seo.Mar sin, tá gach foireann forbartha ag tabhairt aghaidhe ar an ngá atá le ceann de na caighdeáin a roghnú. Ach mar a tharlaíonn sé, is féidir an rogha seo a dhéanamh a bheith an-deacair.

Cén fáth a bhfuil gá le nótaí?

Tá an nóta de dhíth ionas gur féidir le húsáideoir seachtrach a dhéanamh amach go héasca cad is féidir a dhéanamh le do sheirbhís trína chomhéadan HTTP. Is é sin, ar leibhéal bunúsach, ní mór go mbeadh ar a laghad liosta de na hacmhainní atá ar fáil, a modhanna HTTP, comhlachtaí iarratais, liosta paraiméadair, tásc ar na ceanntásca riachtanacha agus tacaithe, chomh maith le cóid tuairisceáin agus formáidí freagartha san nóta. Gné thar a bheith tábhachtach den nótáil conartha is ea a gcur síos ó bhéal (“cad a tharlóidh má chuireann tú an paraiméadar fiosrúcháin seo leis an iarratas?”, “Cén cás a sheolfar cód 400 ar ais?”)

Mar sin féin, nuair a thagann sé chun líon mór micreasheirbhísí a fhorbairt, ba mhaith leat luach breise a bhaint as na nótaí scríofa. Mar shampla, bunaithe ar RAML/Swagger, is féidir leat cód cliaint agus freastalaí araon a ghiniúint i líon mór teangacha ríomhchlárúcháin. Is féidir leat freisin doiciméadú a fháil go huathoibríoch don mhicriseirbhís agus é a uaslódáil chuig do thairseach forbróra :).

An RAML nó OAS (Swagger) é mar sin?
Sampla de chur síos ar chonradh struchtúrtha

Níos lú coitianta ná an cleachtas maidir le micrseirbhísí a thástáil bunaithe ar thuairiscí conartha. Má tá nóta agus comhpháirt scríofa agat, is féidir leat uathtástáil a chruthú a sheiceálann leorgacht na seirbhíse le cineálacha éagsúla sonraí ionchuir. An dtugann an tseirbhís cód freagartha ar ais nach bhfuil cur síos air san nóta? An mbeidh sé in ann sonraí is léir mícheart a phróiseáil i gceart?

Ina theannta sin, le cur i bhfeidhm ardchaighdeáin ní hamháin na conarthaí féin, ach freisin na huirlisí chun nótaí a shamhlú, is féidir an obair leis an micrisheirbhís a shimpliú. Is é sin, má rinne an t-ailtire cur síos cáilíochtúil ar an gconradh, bunaithe air, cuirfidh dearthóirí agus forbróirí an tseirbhís i bhfeidhm i dtáirgí eile gan costais bhreise ama.

Chun uirlisí breise a chumasú, tá an cumas ag RAML agus OAS araon meiteashonraí a chur leis nach bhforáiltear dóibh sa chaighdeán (mar shampla, seo mar a dhéantar é in OAS).

Go ginearálta, is mór an scóip atá ann don chruthaitheacht maidir le conarthaí a úsáid le haghaidh micreasheirbhísí... go teoiriciúil ar a laghad.

Comparáid idir gráinneog agus nathair

Faoi láthair, is é an réimse forbartha tosaíochta ag Acronis ná forbairt ar Ardán Cyber ​​​​Acronis. Is pointí nua de chomhtháthú seirbhísí tríú páirtí é Acronis Cyber ​​​​Platform le Acronis Cyber ​​​​Cloud agus an chuid gníomhaire. Cé go rabhamar sásta lenár n-API inmheánacha a bhfuil cur síos orthu in RAML, d’ardaigh an gá atá leis an API a fhoilsiú arís an cheist maidir le rogha: cén caighdeán anótála is fearr a úsáid dár gcuid oibre?

Ar dtús, ba chosúil go raibh dhá réiteach ann - ba iad na forbairtí is coitianta ná RAML agus Swagger (nó OAS). Ach i ndáiríre d'éirigh sé amach go bhfuil ar a laghad nach bhfuil 2 roghanna, ach 3 nó níos mó.

Ar thaobh amháin tá RAML - teanga chumhachtach agus éifeachtach. Cuireann sé ordlathas agus oidhreacht i bhfeidhm go maith, agus mar sin tá an fhormáid seo níos oiriúnaí do chuideachtaí móra a dteastaíonn go leor tuairiscí orthu - is é sin, ní táirge amháin, ach go leor microservices a bhfuil codanna coitianta de chonarthaí acu - scéimeanna fíordheimhnithe, na cineálacha sonraí céanna, comhlachtaí earráide. .

Ach tá forbróir RAML, Mulesoft, tar éis dul isteach sa chuibhreannas Open API, atá ag forbairt Slogtar. Mar sin, chuir RAML a fhorbairt ar fionraí. Chun formáid an imeachta a shamhlú, samhlaigh gur fhág coimeádaithe na bpríomhchodanna Linux oibriú do Microsoft. Cruthaíonn an staid seo na réamhriachtanais chun Swagger a úsáid, atá ag forbairt go dinimiciúil agus sa tríú leagan is déanaí - a thagann suas go praiticiúil le RAML i dtéarmaí solúbthachta agus feidhmiúlacht.

Mura bhfuil ar rud amháin ...

Mar a tharla, níor nuashonraíodh gach fóntais foinse oscailte go OAS 3.0. Maidir le microservices in Go, is é an rud is tábhachtaí ná an easpa oiriúnaithe go-swagger le haghaidh an leagan is déanaí den chaighdeán. Mar sin féin, is é an difríocht idir Swagger 2 agus Swagger 3 ollmhór. Mar shampla, sa tríú leagan na forbróirí:

  • cur síos feabhsaithe ar scéimeanna fíordheimhnithe
  • chríochnaigh Tacaíocht scéimre JSON
  • uasghrádaíodh an cumas samplaí a chur leis

Tá an scéal greannmhar: nuair a roghnaíonn tú caighdeán, ní mór duit RAML, Swagger 2 agus Swagger 3 a mheas mar roghanna eile ar leithligh. Mar sin féin, níl ach Swagger 2 tacaíocht mhaith d'uirlisí OpenSource. Tá RAML an-solúbtha ... agus casta, agus tá droch-thacaíocht ag Swagger 3 ón bpobal, mar sin beidh ort uirlisí dílseánaigh nó réitigh tráchtála a úsáid, a mbíonn claonadh acu a bheith costasach go leor.

Thairis sin, má tá go leor gnéithe deas i Swagger, mar shampla tairseach réidh de dhéantús an duine eagarthóir.swagger.io, ar ar féidir leat nóta a uaslódáil agus a léirshamhlú a fháil le cur síos mionsonraithe, naisc agus naisc, ansin le haghaidh an RAML níos bunúsaí agus nach bhfuil chomh cairdiúil leis, níl aon deis den sórt sin ann. Sea, is féidir leat rud éigin a chuardach i measc tionscadal ar GitHub, teacht ar analóg ansin agus é a imscaradh tú féin. Mar sin féin, in aon chás, beidh ar dhuine an tairseach a chothabháil, nach bhfuil chomh áisiúil le húsáid bhunúsach nó le riachtanais tástála. Ina theannta sin, tá swagger níos “neamhphrionsabal”, nó níos liobrálaí - is féidir é a ghiniúint ó thuairimí sa chód, a théann, ar ndóigh, i gcoinne an chéad phrionsabail API agus nach bhfuil tacaíocht ó aon cheann de na fóntais RAML.

Ag am amháin thosaigh muid ag obair le RAML mar theanga níos solúbtha, agus mar thoradh air sin bhí orainn a lán rudaí a dhéanamh sinn féin. Mar shampla, úsáideann ceann de na tionscadail an fóntais reiligiúin i dtástálacha aonaid, a thacaíonn le RAML 0.8 amháin. Mar sin bhí orainn crutches a chur leis ionas go bhféadfadh an áirgiúlacht “ithe” RAML leagan 1.0.

An gá duit a roghnú?

Tar éis dúinn oibriú ar an éiceachóras réitigh do RAML a chríochnú, tháinig muid ar an tátal go gcaithfimid RAML a thiontú go Swagger 2 agus an uathoibriú, an fíorú, an tástáil agus an leas iomlán a bhaint as ina dhiaidh sin a dhéanamh. Is bealach maith é seo chun solúbthacht RAML agus an tacaíocht uirlisí pobail ó Swagger a ghiaráil.

Chun an fhadhb seo a réiteach, tá dhá uirlis OpenSource ann ar cheart dóibh comhshó conartha a sholáthar:

  1. oas-raml-tiontaire is áirge nach dtacaítear leis faoi láthair é. Agus muid ag obair leis, fuaireamar amach go bhfuil roinnt fadhbanna aige le RAMLanna casta atá “scaipthe” thar líon mór comhad. Tá an clár seo scríofa i JavaScript agus déanann sé traschur athchúrsach ar chrann comhréire. Mar gheall ar chlóscríobh dinimiciúil, bíonn sé deacair an cód seo a thuiscint, agus mar sin shocraigh muid gan am a chur amú ag scríobh paistí le haghaidh áirgiúlachta atá ag fáil bháis.
  2. webapi-parsálaí - uirlis ón gcuideachta chéanna a éilíonn go bhfuil sé réidh le haon rud agus gach rud a thiontú, agus in aon treo. Go dtí seo, tá tacaíocht fógartha do RAML 0.8, RAML 1.0 agus Swagger 2.0. Mar sin féin, tráth ár dtaighde, bhí an áirgiúlacht fós FHORCHUR tais agus do-úsáidte. Forbróirí a chruthú ar chineál an IR, rud a ligeann dóibh caighdeáin nua a chur leis go tapa sa todhchaí. Ach go dtí seo ní hamháin go n-oibríonn sé.

Agus ní sin na deacrachtaí ar fad a bhí againn. Ceann de na céimeanna atá inár bpíblíne ná a fhíorú go bhfuil an RAML ón stór ceart i gcoibhneas leis an tsonraíocht. Rinneamar iarracht roinnt fóntais. Ionadh, mhionnaigh siad go léir ar ár nótaí in áiteanna éagsúla agus le focail go hiomlán difriúil dona. Agus ní i gcónaí go dtí an pointe :).

Sa deireadh, shocraigh muid ar thionscadal atá as dáta anois, a bhfuil roinnt fadhbanna aige freisin (uaireanta tuairteanna sé as an gorm, tá fadhbanna ag obair le gothaí rialta). Mar sin, níor aimsigh muid bealach chun na fadhbanna a bhaineann le bailíochtú agus comhshó a réiteach bunaithe ar uirlisí saor in aisce, agus chinneamar fóntais tráchtála a úsáid. Sa todhchaí, de réir mar a éiríonn uirlisí OpenSource níos aibí, d'fhéadfadh an fhadhb seo a bheith níos éasca a réiteach. Idir an dá linn, ba chosúil dúinne go raibh na costais saothair agus ama a bhain le “críochnú” níos suntasaí ná costas seirbhíse tráchtála.

Conclúid

Tar éis seo go léir, bhíomar ag iarraidh ár dtaithí a roinnt agus a thabhairt faoi deara, sula roghnaíonn tú uirlis chun cur síos a dhéanamh ar chonarthaí, go gcaithfidh tú a shainiú go soiléir cad ba mhaith leat uaidh agus cén buiséad a bhfuil tú sásta a infheistiú. Má dhéanaimid dearmad faoi OpenSource, tá líon mór seirbhísí agus táirgí ann cheana féin a chabhróidh leat seiceáil, thiontú agus bailíochtú. Ach tá siad costasach, agus uaireanta an-daor. I gcás cuideachta mhór, tá costais den sórt sin inghlactha, ach le haghaidh tosaithe is féidir leo a bheith ina n-ualach mór.

Socraigh an tacar uirlisí a úsáidfidh tú níos déanaí. Mar shampla, más gá duit ach conradh a thaispeáint, beidh sé níos éasca Swagger 2 a úsáid, a bhfuil API álainn aige, mar i RAML beidh ort an tseirbhís a thógáil agus a chothabháil duit féin.
Dá mhéad tascanna a bheidh agat, is ea is leithne an gá atá le huirlisí, agus bíonn siad éagsúil le haghaidh ardáin éagsúla, agus is fearr eolas a chur láithreach ar na leaganacha atá ar fáil chun rogha a dhéanamh a íoslaghdaíonn do chostais amach anseo.

Ach is fiú a aithint go bhfuil gach éiceachóras atá ann inniu neamhfhoirfe. Dá bhrí sin, má tá lucht leanúna sa chuideachta ar mhaith leo a bheith ag obair i RAML mar "go gceadaíonn sé duit smaointe a chur in iúl ar bhealach níos solúbtha," nó, ar a mhalairt, is fearr le Swagger mar "tá sé níos soiléire," is fearr iad a fhágáil ag obair. ina bhfuil siad Tá siad cleachta leis agus ba mhaith leo é, mar is gá uirlisí aon cheann de na formáidí a mhodhnú le comhad.

Maidir lenár dtaithí, sna poist seo a leanas beimid ag caint faoi na seiceálacha statacha agus dinimiciúla a dhéanaimid bunaithe ar ár n-ailtireacht RAML-Swagger, chomh maith leis na doiciméid a ghinimid ó chonarthaí, agus conas a oibríonn sé go léir.

Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé. Sínigh isteach, le do thoil.

Cén teanga a úsáideann tú chun conarthaí micreasheirbhíse a anótáil?

  • RAML 0.8

  • RAML 1.0

  • Saighdiúir 2

  • OAS3 (aka)

  • Blueprint

  • Eile

  • Gan úsáid

Vótáil 100 úsáideoir. Staon 24 úsáideoir.

Foinse: will.com

Add a comment