Mivel lehet wsdlből és annak xsdjlből openapi yaml 3.0-t csinálni?
Már egy ideje nem találom új google találatot.
Ajánljatok valamit!
- 212 megtekintés
Hozzászólások
Szerintem nem igazán van értelme.
SOAP esetén egy HTTP(S) endpointra küldesz SOAP envelope-okat (XML) POST HTTP metódussal.
Az envelope-ok tartalmát pedig nem fogja leírni az OpenAPI.
Ez két külön világ.
- A hozzászóláshoz be kell jelentkezni
Ennek van csak igazán értelme!
Kb nulla melóval lehet így facade layer servicet generálni SOAPhoz, ami RESTen hívható.
Edit:
Kisebbeket kézzel is még meg lehet csinálni, de nagyobbakhoz kéne a generátor.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Ez nem fog működni normálisan. Hogyan írod le a faultokat RESTful módon?
A WSDL más szemantikával rendelkezik, objektumoknak hívod a metódusait. A REST meg erőforrásokon végez HTTP segítségével definiált műveleteket.
Ezen kívül a WSDL jóval többet tud.
Eleve a WSDL-ben hivatkozott XML Schema sokkal típusbiztosabb, mint bármilyen JSON schema.
A SOAP faultokat miként akarod lefedni HTTP hibakódokkal?
A SOAP le tud írni one-way, solicit-response és notification típusú műveleteket is a szokásos request-response helyett.
Teljesen más világ a kettő, teljesen más szervezési elvekkel, szemantikával.
- A hozzászóláshoz be kell jelentkezni
Pontosan ilyen esetekben használunk elfedő facade réteget. Open your imagination.
A facade réteg beszél SOAPul és kifele RESTnek látszik, modernizáció (!).
Az ügyfél nem programoztatja le a meglévő servicet, hanem újrahasznosítja, és hát nagyon jól is működik, csak a facade service-t favágás megírni.
Gondoltam más is csinál ilyesmit, nagy rá a kereslet.
https://openapi.tools/#converters nincs rajta jó.
- A hozzászóláshoz be kell jelentkezni
De hogyan tudod automatikusan (ez ugye fontos kitétel) azt mondani, hogy feldolgozod szemantikusan helyesen a faultokat? Például egy "AmountMustBePositive" faultból mi lesz REST oldalon automatikusan? A WSDL-nek mondjuk ez a részlete:
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name="nmtoken" parameterOrder="nmtokens"> <wsdl:input name="PurchaseItemRequest"? message="tns:PIRequest"/> <wsdl:output name="TransactionResult" message="tns:TransactionResult"/> <wsdl:fault name="NoSuchPayee" message="tns:NSPFault"/> <wsdl:fault name="AmountMustBePositive" message="tns:AMBPFault"/> </wsdl:operation> </wsdl:portType > </wsdl:definitions>
Ahhoz, hogy a faultokat egy generátor helyesen REST hibakódokra konvertálja, értenie kéne, hogy mit csinál. Az nem OpenAPI/RESTfulság, hogy minden POST, és ami eddig XML volt, az most JSON lesz. Akkor inkább ne használ OpenAPI-t, mert biztosan nem RESTful az API-d. Amit te favágásnak gondolsz, az csak formátumkonverzió, de a REST meg a SOAP teljesen más gondolkodásmódot jelent. Ha valakinek azt mondod, van egy REST service-d, ami mégsem REST csak RPC-over-HTTP-with-JSON, akkor inkább hagyd az egészet.
- A hozzászóláshoz be kell jelentkezni
Az openapi spec ugyanúgy tartalmaz(hat) ellenőrzéseket. Kétségtelen kicsit szegényebb, de azért nem nulla.
- A hozzászóláshoz be kell jelentkezni
De automatikusan kell tudnod generálni azt, ami valójában szemantika. Ha ezt géppel meg tudod oldani mindig automatikusan és helyesen, szerintem kapsz egy Turing-díjat.
- A hozzászóláshoz be kell jelentkezni
? Rögtön a legelső már tudja ezt az irányt
- A hozzászóláshoz be kell jelentkezni