Na ko RAML ranei OAS (Swagger)?

I roto i te ao hihiri o nga ratonga moroiti, ka huri nga mea katoa—ka taea te tuhi ano i tetahi waahanga ki tetahi reo rereke, ma te whakamahi i nga anga me nga hoahoanga rereke. Ko nga kirimana anake me noho tonu kia kore e rerekee kia taea ai e te ratonga moroiti te taunekeneke mai i waho i runga i tetahi kaupapa pumau, ahakoa te ahua o roto. A i tenei ra ka korero matou mo to maatau raruraru mo te whiriwhiri i tetahi whakatakotoranga mo te whakaahua kirimana me te tiri i nga taonga i kitea e matou.

Na ko RAML ranei OAS (Swagger)?

Kua rite te pou Ana Melekhova и Vladimir Lapatin

Microservices. I te wa e whakawhanake ana a Acronis Cyber ​​​​Cloud, i mohio matou kaore e taea te mawhiti i a raatau. A ko te hoahoa moroiti kaore e taea te kore e whakamana i te kirimana, e tohu ana i te atanga o te microservice.

Engari ki te nui atu i te kotahi te waahanga o tetahi hua, ka noho hei mahi i nga wa katoa te whakawhanaketanga kirimana, katahi koe ka timata ki te whakaaro mo te arotautanga o nga mahi. Ka kitea ko te atanga (kirimana) me te whakatinanatanga (ratonga moroiti) me taurite tetahi ki tetahi, me rite nga waahanga rereke ki te mahi i nga mahi kotahi, me te kore e whakatauhia e enei whakatau katoa, ka kaha ia kapa ki te mahi. Me whakapau te wa ki te tiki.

Na ko RAML ranei OAS (Swagger)?
Amazon microservices hoahoa mai tweet Werner Vogelis, CTO Amazon
He aha te matawaenga? Ko te mea pono, e rua nga huarahi ki te taunekeneke i nga ratonga miihini - HTTP Rest me te gRPC mai i a Google. I te kore e hiahia kia mau ki roto i te puranga hangarau a Google, i whiriwhiria e matou te okiokinga HTTP. Ko nga korero kirimana HTTP REST e tino whakaahuahia ana i roto i tetahi o nga whakatakotoranga e rua: RAML me OAS, i mohiotia i mua ko Swagger. Engari i te mea ka puta, he tino uaua te whakatau i tenei whiringa.

He aha te take e hiahiatia ai nga tuhipoka?

E hiahiatia ana te tuhipoka kia taea e tetahi kaiwhakamahi o waho te mohio he aha te mahi me to ratonga ma tana atanga HTTP. Arā, i te taumata taketake, me mau i roto i te tuhipoka he rarangi rawa o nga rauemi e waatea ana, o raatau tikanga HTTP, nga tinana tono, he rarangi o nga tawhā, he tohu mo nga pane e hiahiatia ana me te tautoko, me nga waehere whakahoki me nga whakatakotoranga whakautu. Ko tetahi mea tino nui o te tuhinga kirimana ko te whakamaarama a-waha ("ka aha mena ka taapirihia e koe tenei tawhā uiui ki te tono?", "He aha te take ka whakahokia te waehere 400?")

Heoi, ina tae mai ki te whakawhanake i te maha o nga ratonga moroiti, ka hiahia koe ki te tango i etahi atu uara mai i nga tuhinga tuhi. Hei tauira, i runga i te RAML/Swagger, ka taea e koe te whakaputa i te waehere kiritaki me te tūmau i roto i te maha o nga reo papatono. Ka taea hoki e koe te tiki aunoa i nga tuhinga mo te ratonga moroiti me te tuku atu ki to paanui-whakawhanake :).

Na ko RAML ranei OAS (Swagger)?
He tauira o te whakaahuatanga kirimana hanganga

He iti ake te tikanga o te whakamatautau i nga ratonga miihini i runga i nga whakaahuatanga kirimana. Mena kua tuhia e koe he tuhipoka me tetahi waahanga, ka taea e koe te hanga i tetahi whakamatautau aunoa hei tirotiro i te tika o te ratonga me nga momo momo raraunga whakauru. Ka whakahokia e te ratonga he waehere whakautu kaore i te whakaahuahia i roto i te tuhipoka? Ka taea e ia te tukatuka tika i nga raraunga e tino he ana?

I tua atu, ko te whakatinanatanga o te kounga teitei ehara i te mea ko nga kirimana anake, engari ko nga taputapu mo te whakaata i nga tuhinga korero ka taea te whakangawari i nga mahi me te microservice. Arā, mena ka whakaahuahia e te kaihoahoa te kirimana, i runga i tera, ka whakatinanahia e nga kaihoahoa me nga kaiwhakawhanake te ratonga ki etahi atu hua kaore he utu taapiri.

Kia taea ai nga taputapu taapiri, ko te RAML me te OAS te kaha ki te taapiri metadata kaore i whakaratohia e te paerewa (hei tauira, koinei te mahi i roto i te OAS).

I te nuinga o te waa, ko te waahi mo te mahi auaha ki te whakamahi i nga kirimana mo nga ratonga miihini he nui ... i te iti rawa i roto i te ariā.

Te whakataurite o te matuku ki te nakahi

I tenei wa, ko te waahanga whanaketanga matua i Acronis ko te whanaketanga o te Acronis Cyber ​​​​Platform. Ko te Acronis Cyber ​​​​Platform he waahi hou mo te whakauru o nga ratonga tuatoru me Acronis Cyber ​​​​Cloud me te waahanga kaihoko. Ahakoa i harikoa matou ki o matou API o roto e whakaahuatia ana i roto i te RAML, na te hiahia ki te whakaputa i te API i ara ake ano te patai mo te whiriwhiri: ko tehea paerewa tuhipoka pai hei whakamahi mo a maatau mahi?

I te timatanga, ko te ahua e rua nga otinga - ko te nuinga o nga whanaketanga ko te RAML me te Swagger (ko OAS ranei). Engari i roto i te meka ka puta ko te iti rawa kaore e 2 nga whiringa, engari 3 neke atu ranei.

I tetahi taha ko RAML - he reo kaha me te whai hua. He pai te whakatinana i te hierarchy me te tuku tuku iho, no reira he pai ake tenei whakatakotoranga mo nga kamupene nui e hiahia ana kia maha nga whakaahuatanga - ara, ehara i te hua kotahi, engari he maha nga microservices he waahanga noa o nga kirimana - nga kaupapa motuhēhēnga, nga momo raraunga rite, nga tinana hapa. .

Engari ko te kaiwhakawhanake o RAML, a Mulesoft, kua uru atu ki te Open API consortium, kei te whanake Reweti. Na reira, ka aukati a RAML i tana whanaketanga. Ki te whakaaro i te whakatakotoranga o te huihuinga, whakaarohia kua waiho nga kaitiaki o nga waahanga Linux matua ki te mahi mo Microsoft. Ko tenei ahuatanga ka hanga i nga tikanga mo te whakamahi i te Swagger, kei te whanake haere tonu me nga mea hou - tuatoru - ka mau ki te RAML mo te ngawari me te mahi.

Mena kaore mo tetahi mea ...

Ko te ahua, kaore nga taputapu tuwhera-puna katoa i whakahoutia ki OAS 3.0. Mo nga microservices i Go, ko te mea tino nui ko te kore urutaunga haere-swagger mo te putanga hou o te paerewa. Heoi, ko te rereketanga i waenga i te Swagger 2 me te Swagger 3 nui. Hei tauira, i te putanga tuatoru nga kaihanga:

  • kua pai ake te whakaahuatanga o nga kaupapa motuhēhēnga
  • oti Tautoko JSON Schema
  • i whakapai ake i te kaha ki te taapiri tauira

He rorirori te ahuatanga: i te wa e whiriwhiri ana koe i te paerewa, me whakaaro koe ki a RAML, Swagger 2 me Swagger 3 hei momo rereke. Heoi, ko Swagger 2 anake te tautoko pai mo nga taputapu OpenSource. He tino ngawari te RAML...he uaua, a ko te Swagger 3 he iti te tautoko e te hapori, no reira me whakamahi koe i nga taputapu rangatira, i nga otinga arumoni ranei, he tino utu nui.

Ano, mena he maha nga ahuatanga pai i Swagger, penei i te tomokanga kua rite editor.swagger.io, ka taea e koe te tuku korero me te whakakitenga me te whakamaarama taipitopito, nga hononga me nga hononga, na mo te RAML tino maamaa me te iti ake te hoahoa kaore he waahi penei. Ae, ka taea e koe te rapu i tetahi mea i waenga i nga kaupapa i runga i te GitHub, kimihia he tairitenga ki reira ka horahia e koe. Heoi, ahakoa he aha, me pupuri tetahi i te tomokanga, kaore i te watea mo te whakamahi taketake me nga hiahia whakamatautau. I tua atu, he nui ake te "kaore i te kaupapa", he ngawari ake ranei - ka taea te whakaputa mai i nga korero i roto i te waehere, he pono, ka takahi i te kaupapa tuatahi o te API, kaore i te tautokohia e tetahi o nga taputapu RAML.

I tetahi wa i timata matou ki te mahi tahi me te RAML hei reo ngawari ake, na reira he maha nga mahi i mahia e matou. Hei tauira, ka whakamahia e tetahi o nga kaupapa te whaipainga whakakitenga i nga whakamatautau wae, e tautoko ana i te RAML 0.8 anake. Na me taapiri he tootoo kia taea e te taputapu te "kai" RAML putanga 1.0.

Me whiriwhiri koe?

I te mahi ki te whakaoti i te rauwiringa kaiao o nga otinga mo te RAML, kua tae matou ki te whakatau me huri te RAML ki te Swagger 2 me te whakahaere i nga mahi aunoatanga, te manatoko, te whakamatautau me te arotautanga o muri mai. He huarahi pai tenei ki te whakamahi i te ngawari o te RAML me te tautoko taputapu hapori mai i Swagger.

Hei whakaoti i tenei raruraru, e rua nga taputapu OpenSource e tika ana hei whakarato i te huringa kirimana:

  1. oas-raml-converter he taputapu kore tautoko i tenei wa. I a matou e mahi tahi ana, i kitea e matou he maha nga raruraru me nga RAML matatini e "horapa atu" ki runga i te maha o nga konae. Kua tuhia tenei papatono ki te JavaScript me te mahi i te hikoi whakamuri o te rakau wetereo. Na te kaha o te patopato, ka uaua ki te mohio ki tenei waehere, no reira ka whakatau matou kia kaua e moumou taima ki te tuhi i nga papa mo tetahi taputapu ka mate.
  2. webapi-parser - he taputapu mai i te kamupene kotahi e kii ana kua rite ki te huri i tetahi mea me nga mea katoa, me tetahi huarahi. I tenei wa, kua panuitia te tautoko mo te RAML 0.8, RAML 1.0 me te Swagger 2.0. Heoi, i te wa o ta maatau rangahau, kei te noho tonu te whaipainga TINO TINO haukū me te kore e taea te whakamahi. Ka hangaia e nga Kaihanga tetahi momo IR, ka taea e ratou te taapiri tere i nga paerewa hou a meake nei. Engari i tenei wa kaore i te mahi.

A ehara i te mea ko nga uauatanga katoa i pa ki a matou. Ko tetahi o nga mahi i roto i ta maatau pipeline ko te manatoko he tika te RAML mai i te whare putunga ki te tohu. I whakamatauria e matou etahi taputapu. He mea whakamiharo, i oati katoa ratou ki o maatau korero i nga waahi rereke me nga kupu kino rereke. A kaore i nga wa katoa ki te waahi :).

I te mutunga, i whakatauhia e matou tetahi kaupapa kua tawhito inaianei, he maha ano nga raruraru (i etahi wa ka pakaru mai i te puru, he raruraru i te wa e mahi ana me nga korero auau). Na, kaore i kitea e matou he huarahi hei whakaoti i nga raruraru o te whakamana me te hurihanga i runga i nga taputapu kore utu, a ka whakatau ki te whakamahi i tetahi taputapu hokohoko. Hei nga ra kei te heke mai, i te mea kua pakeke ake nga taputapu OpenSource, ka ngawari ake pea tenei raru ki te whakaoti. I tenei wa, ko nga utu mo te mahi me te wa mo te "whakaoti" he ahua nui ake ki a matou i te utu o te ratonga arumoni.

mutunga

I muri i enei mea katoa, i hiahia matou ki te whakapuaki i o maatau wheako me te tuhi i mua i te kowhiri i tetahi taputapu mo te whakaahua i nga kirimana, me tino whakamarama koe i nga mea e hiahia ana koe mai i taua mea me te putea e pai ana koe ki te haumi. Mena ka wareware tatou ki a OpenSource, he maha nga ratonga me nga hua ka awhina i a koe ki te tirotiro, ki te huri, ki te whakamana. Engari he utu nui, i etahi wa ka tino utu. Mo te kamupene nui, he pai te utu o enei utu, engari mo te tiimata ka waiho hei taumahatanga nui.

Whakatauhia te huinga taputapu ka whakamahia e koe i muri mai. Hei tauira, ki te hiahia koe ki te whakaatu i tetahi kirimana, ka ngawari ake te whakamahi i te Swagger 2, he ataahua te API, na te mea i roto i te RAML me hanga me te pupuri tonu i te ratonga.
Ko te maha o nga mahi kei a koe, ka nui ake te hiahia mo nga taputapu, he rereke mo nga papaaho rereke, a he pai ake kia mohio koe ki nga putanga e waatea ana kia taea ai e koe te whiriwhiri hei whakaiti i o utu mo nga ra kei mua.

Engari he mea tika kia mohio ko nga punaha rauwiringa kaiao katoa e noho nei i enei ra he koretake. Na, ki te mea he kaiwhaiwhai kei roto i te kamupene e pai ana ki te mahi i roto i te RAML na te mea "ka taea e koe te whakaputa whakaaro ngawari ake," ko te mea ke atu, ka pai ki a Swagger na te mea "he maamaa ake," he pai ki te waiho kia mahi. he aha ratou Kua waia ki a raatau me te hiahia, na te mea ko nga taputapu o tetahi o nga whakatakotoranga me whakarereke me te konae.

Mo o maatau wheako, i roto i nga panui e whai ake nei ka korerohia e matou he aha nga arowhai tuuturu me te hihiri e whakahaerehia ana e matou i runga i ta maatau hoahoanga RAML-Swagger, me nga tuhinga ka whakaputahia e matou mai i nga kirimana, me pehea te mahi katoa.

Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. Waitohu maitēnā.

He aha te reo e whakamahia ana e koe hei tuhi i nga kirimana ratonga moroiti?

  • RAML 0.8

  • RAML 1.0

  • Hurihia 2

  • OAS3 (aka)

  • Huarahi

  • Othertahi atu

  • Kaore i te whakamahi

100 nga kaiwhakamahi i pooti. 24 nga kaiwhakamahi i aukati.

Source: will.com

Tāpiri i te kōrero