376
Vývoj / Re:Je Swagger utter crap?
« kdy: 07. 04. 2019, 16:51:04 »Zaprve, kdyz se to WSDL vygeneruje automaticky na zaklade XSD schematu, tak by si s tim snad melo poradit PHP pri generovani clienta.Mělo. Podmiňovací způsob je na místě.
Co mě ale zaráží víc, je (opakované) tvrzení že WSDL se generuje automaticky na základě XSD schématu. Což je naprostý nesmysl - WSDL obsahuje XSD pro definici typů, ale obsahuje i spoustu dalších informací které v XSD nejsou. Viděl jsi WSDL vůbec někdy?
A to ani nemluvím o WSDL 1.1, které se pokud vím stále ještě leckde vyskytuje.Zadruhe kdyz si s tim neporadi, tak je to uplne jedno, protoze jako predloha stejne slouzi to XSD schema - to je v podstate primarni human readble API te aplikace - a s tim uz si snad musi poradit PHP nebo programator, aby si na zaklade schematu udelal request. Zatreti, kdyz si ani s timto neporadi, tak at de dozadeke, radeji nekde na salas past ovce.Ano, tak to také dopadne. A pak si někdo vzpomene, že se použije pro WS-Security pro zabezpečení...Omg co to zas je za kec, jake tuny sracek, posilas jen XMLko s daty, oproti XSD schematu se to jen validuje. Muzes to poslat i jako JSON.SOAP přes JSON? Tak to jsem ještě neslyšel. Což se může stát, novinky nesleduji, možná komise vytvořila nové monstrum, nebylo by to poprvé. Na druhou stranu, uvážím-li kvalitu ostatních informací, může to být jen blábol.
Takže: Můžeš sem dát odkaz na specifikaci?
XSD schematem si definuju, jak ma vypadat API, tzn. jake maji mit nazvy metody, a podle nazvu souboru toho xsd si definuju i tridy metod. Potom si z XSD vygeneruju Java classy. Ve Springu muzu nyni pouzit budto dle JAX-RS nebo JAX-WS udelam enpoint tridy, ktere cti jmennou konvenci definovnou tim XSD.
Pokud pouziju JAX-WS, tak na zaklade tech trid mi umi Spring automaticky vygenerovat i WSDL soubory. Pokud ale volam jinou komponentu, tak me jeji WSDL vubec nezajima - k tomu abych si ji zavolal potrebuju znat jen 2 veci: url a XSD schema.
Proto rikam, ze XSD me slouzi jako API komponenty, nepotrebuju na to pitomy Swagger. Mam z XSD vygenerovane Javovoske tridy a na zaklade jejich jmen a popisu vim, co je to za metody, treba hned vim, co bude delat: com.xsdforever.violence.DeleteSwaggerFromGalaxy.java
Pokud ale pouzije JAX-RS pro endpoint a udelam to jako rpc, tak muzu porad pouzit XSD jako predlohu, nacez muzu samozrejme pak posilat i JSON zpravy - na tom nesejde, protoze JSON se da validovat oproti XSD.