Aztán jöttek a hupuk, jött a "megváltás": RESTful service meg babámkínja és TADA megszületett az ASP.NET Web API. Most mi van? Háááát, fogj egy Fiddlert, aztán nézd meg, hogy mi jön vissza, hisz XML/JSON, látszik belőle! Abból meg majd megcsinálod magadnak az osztályokat! Hja, hogy service leíró az már nincs? Szopoládé.
Na elmehet mindenki valahova ezzel a fassággal...
- saxus blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
Ez valóban idegesítő. Az az érdekes, hogy pl egy java interface, jaxb annotációkkal egy meglehetősen egzakt(*) deklaratív leírást tud adni egy REST API-ról. Ennyi erővel lehetne adni egy programnyelvtől független leírási formát is.
(* disclaimer: olyan mélységig nem ástam bele magam, hogy minden corner-case-t leellenőrizzek, de elég kevés problémás eset van. Illetve egy terület van, amitől falra tudok mászni: a teljesen custom autentikációs megoldások. Sajnos Rest API-knál valamiért elég nagy divatja van, hogy mindenki feltalálja a saját autentikációs protokollját és ezeket sajnos nem lehet deklaratív API leírással lefedni.)
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
Tippre azért, mert most ezt nyomják mindenkinek, hogy RESTful jajdejó, meg jajhát ez sokkal kevésbé bloatabb, mint a SOAP, mert nem küld annyi XML elemet (könyörgöm, mintha a SOAP arról szólna, hogy te miben küldöd. Pont, hogy függetlenné lehetett volna tenni a adatok továbbítását, mehetne akár JSON-ban, binárisban, füstjelekkel, akármivel).
Mondjuk tegyük hozzá, sokan a SOAP-ot is borzasztó rosszul hasznáták, aztán jobb esetben XmlDocumentként, rosszabb esetben string-ként XML-eket küldözgettek...
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Amúgy ha már elméleti síkra terelődött, akkor a SOAP szerintem más miatt bloat. Gyakorlatilag egy sima socket felett is működhetne, annyira mindent maga akar megoldani és semmit nem használ ki a HTTP lehetőségi közül.
Ez nem csak egyszerűen csúnya, hanem technikailag is gáz, mert a HTTP cache-elésre és load balancingra kitalált megoldások gyakorlatilag semmit nem tudnak kezdeni vele.
Persze Rest-et is nagyon körültekintően kell használni, hogy egy http cache-sel jól működjön (cache-control, etag, if-modified-since, if-none-match, last-modified - mindet értelmesen implementálni kell), de legalább lehet.
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
Igen, a SOAP is felült a "tegyünk mindent HTTP-re, mert az trendi" szopórollerre, sajnos. Viszont akárhogy is nézzük, az egy RPC szolgáltatás, nem dokumentum-szolgáltatás, annak jó volt és használható volt. (Amúgy asszem erre a socketes dologra nyújt is valamit a WCF, de annyira nem ismerem a WCF-et.)
RESTful meg próbálja elővenni a HTTP-s részét, csak az a probléma, hogy megpróbálják API-nak eladni a SOAP helyett. Amit meg nagyon nem kellene.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Megint ott tartunk hogy sokan igénytelenül implementálnak és biztosítanai pl. restful szervizeket, és akkor szar a restful, a soap meg jó. Nem. Mindent lehet rosszul csinálni.
--
arch,xubuntu,debian,windows,android
dev: http://goo.gl/7Us0GN
BCI news: http://goo.gl/fvFM9C
- A hozzászóláshoz be kell jelentkezni
Igen, mert ha rendesen implementálják, akkor lesz schemadefinicióm arról, hogy mit böfög vissza a szerver.
Vagy nem.
Szóval ott tartunk, hogy a RESTful nem váltja ki a SOAP-ot, de cserébe még szarul is implementálják sokan.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Egyébként az Amazon csinálta azt, hogy WSDL leírót adtak ki az AWS API-kra, amit egyrészt nyilván lehet SOAP felett "fogyasztani". Viszont egy szisztematikus leképzéssel ugyanebből a WSDL-ből csináltak REST API-t is. Tehát végülis valami kicsavart módon WSDL-t használnak REST sémadefiníciónak.
(Ebben az a vicces, hogy az Eucalyptus a saját API-ját az Amazon által kiadott ec2.wsdl-ből generálja, tehát elviekben 100% kompatibilis kéne legyen. Csakhogy elcseszték a WSDL->Rest leképzést a listák/tömbök környékén, emiatt sokminden teljesen máshogy működik. Triviális volna kijavítani, de mivel már számtalan 3rd party kliensprogramban bedrótozva ott az Eucalyptus-specifikus gányolás ezért nem nyúlnak hozzá.)
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
Na hármat találhatsz miért raknak mindent HTTP-re! Nem azért mert "trendy". Sokkal erősebb hajtóerő mögötte, hogy a HTTP átmegy a céges web proxykon. Ezen egészen addig röhögtem, amíg nagycéges környezetbe nem kerültem. Azóta inkább sírok.
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
https://helloreverb.com/developers/swagger
--
arch,xubuntu,debian,windows,android
dev: http://goo.gl/7Us0GN
BCI news: http://goo.gl/fvFM9C
- A hozzászóláshoz be kell jelentkezni
Ezzel nem megyek semmire, mivel nem én biztosítom a service-t, hanem nekem kell használni. Ilyenkor azért ordas nagy gányfos megoldás az, hogy "há' nézd meg a kimenetét!".
Plusz, ameddig egy SOAP WebService esetén már kész API-t kaptam, addig ezzel még mindig csak ott tartom, hogy tudom, hogy mire számíthatok.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Persze, ez a cucc a service provider oldalának szól, és nem a kliensnek.
--
arch,xubuntu,debian,windows,android
dev: http://goo.gl/7Us0GN
BCI news: http://goo.gl/fvFM9C
- A hozzászóláshoz be kell jelentkezni
Részben egyetértek, de ha nincs az alkalmazott környezetben normális SOAP támogatás, akkor üdv a pokolban.
- A hozzászóláshoz be kell jelentkezni
Annyira azért nem lehetetlen XML-t parseolni/írni, ha minden kötél szakad. Ha mondjuk XML-hez sincs semmi támogatás (van olyan egyáltalán?), akkor mondjuk tényleg cumi.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Így van, csak ha beterveztél rá 1 napot, hogy pikk-pakk beilleszted a távoli hívásokat a rendszerbe, és közben derül ki, hogy az úgynevezett támogatottság csak a "Hello world!" szintű problémák lefedésére elegendő, akkor cumi van: nyilván megoldja valahogy az ember, de megy a hajtépés.
Amúgy részemről Oracle Apex, PL/SQL volt a móka tárgya, ráadásul én javasoltam a SOAP-pot még a tervezési fázisban (szabványos! enterprise!!!), szóval házhoz mentem a l*f*szér :)
- A hozzászóláshoz be kell jelentkezni
Most akkor kell XML vagy nem kell?
Pont te írtad le itt, hogy nem kell az XML a SOAPhoz:
http://hup.hu/node/134117?comments_per_page=9999#comment-1761529
Most meg azzal érvelsz, hogy kell.
Elárulom a nagy titkot: nem a SOAP a megváltás, és a nem a REST szar. A hiba abban van, ha nincs az interfész normálisan definiálva.
Az, hogy ez technikai szinten hogyan történik (WSDL leíró) vagy másképpen (pl. egy WADL + JSON-Schema) az édesmindegy.
Én például tökéletesen tudom használni a REST-et anélkül, hogy tudnék róla, hogy milyen lesz a kimeneti JSON vagy éppen mik az URL-ek.
JAX-RS + interface definíciók + DTO-k + proxy osztályok az interfészekre.
- A hozzászóláshoz be kell jelentkezni
"Most akkor kell XML vagy nem kell?"
Kelleni kell, mert most azon keresztül megy. De elméletben lehetséges lenne akármi másra lecserélni a hordozó formátumot.
"Elárulom a nagy titkot: nem a SOAP a megváltás, és a nem a REST szar. A hiba abban van, ha nincs az interfész normálisan definiálva."
Oké, csak van különbség aközött, hogy egyik oldalon megmondom az osztályoknak, hogy TADA, a másik oldalon behúzom a WSDL-t, és szintén TADA és az egész SOAP-ból annyit látok, hogy itt bemegy egy ojjekt, túloldalt kijön egy ojjekt, aztán visszadobok valami ojjektet, ami szintén ojjektként köt ki az eredeti hívó oldalon. És az egész HTTP-ről meg az XML-es baszásról, ami a felszín alatt történik, nagy ívben szarok. Na most ennél a nyomi Web """API"""-nál ez nincs meg. És most erre recskáznak egyesek, hogy mekkora innováció. Hát nem.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Az eredeti SOAP API-nál sincs ez meg. Envelope-ok vannak meg XML hányások, amelyeket bizonyos frameworkök elrejtenek előled.
Használtál már gSOAP-ot SOAP-ra vagy valami kényelmesebbel dolgoztál? A gSOAP is szopás, hiába SOAP.
A REST is ugyanez: ha van egy jó framewörköd, akkor ojjekt meg ojjekt dolgozik össze, te nem is látod, hogy a háttérben HTTP van.
- A hozzászóláshoz be kell jelentkezni
Szerencsére hozzám már csak akkor jutott el, mikor már ez működött.
"A REST is ugyanez: ha van egy jó framewörköd"
Értem, de ha kapok egy ilyen webhányást, hogy tessék ez van, meg ilyen XML kérések vannak, amire jön valami, akkor mit tudok tenni?
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Mielőtt harakirit követnél el jelzem, hogy a SOAP is webhányás és xml.
- A hozzászóláshoz be kell jelentkezni
Ez igy nem egeszen pontos...
- A hozzászóláshoz be kell jelentkezni
Én úgy tudom SOAP esetén HTTP-n mennek XML formátumú üzenetek.
Pontosíts légyszi!
- A hozzászóláshoz be kell jelentkezni
Szerintem nem feltétlenül http. Azt is használhat, de nem kötelező. (nem volt vele közvetlen dolgom, szóval nem vagyok megbízható forrás!)
- A hozzászóláshoz be kell jelentkezni
nezz mar utana legyszi
tegnap este, amikor webservice-t csinaltam, meg lehetett TCP-n kuldeni a cuccot. azota mondjuk en sem neztem, lehet, hogy ejjel megvaltozott a szabvany :)
- A hozzászóláshoz be kell jelentkezni
HTTP is TCP-n megy ;)
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Technikailag igazad van, de egy (neha) felesleges reteget ki lehet dobni: http://msdn.microsoft.com/en-us/library/ms733769(v=vs.110).aspx
- A hozzászóláshoz be kell jelentkezni
Tudom, ezzel tisztában vagyok, hogy van ilyen. A kérdés általában az szokott lenni, hogy a service melyik oldalán áll az ember.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Eddig SOAProl volt szo, nem WCFrol. Te is nezz mar utana legyszi mi a kulonbseg.
- A hozzászóláshoz be kell jelentkezni
ne tedd ezt velunk :'(
a SOAP meg mindig nem tartalmaz kikotest a transzport kozegre, igy tulajdonkeppen a papircetlin vagy a stdin/stdout-on kuldott SOAP uzenet is valid SOAP
ugyanez java-ban: https://metro.java.net/guide/ch09.html
tessek, nincs WCF, van viszont tcp, mint transzport.
- A hozzászóláshoz be kell jelentkezni
lock
- A hozzászóláshoz be kell jelentkezni
Kulonbseg az, hogy egy tipusbiztos, schemadefinicioval rendelkezo hányás, amit egy szines-szagos dobozban adnak oda, amibe tudok dolgokat dobalgatni es hányás helyett ugyanugy jol definiált dolgok pottyannak ki. (persze, vannak fogyik, akik nem értették meg a dolgokkal való dobálózás lényeget, es szeretnek ugyanugy hanyast (public XmlDocument Csapassas(XmlDocument input) dobálni SOAP felett ide-oda, de azokat most hagyjuk.
A probléma az, hogy ennek csak a hányás van.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
+1
En is kapok neha XmlDocument/XDocument parametereket varo/kuldo WCF definiciokat. Olyankor kedvem lenne felallni az asztalomtol, atsetalni a fejlesztohoz es eltorni a kezet.
- A hozzászóláshoz be kell jelentkezni
Gányolni mindennel lehet.
Csak ugye a SOAP az egy protokoll, a REST az egy pattern, a WebAPI meg egy keretrendszer.
Igazából az összehasonlítás is értelmetlen őket, másra valók.
- A hozzászóláshoz be kell jelentkezni
Az oke, csak most jelen esetben egy SOAP-os service helyett kell egy ilyen webapis izet hasznalnom, raadasul a fel webet azzal kurtolik tele, hogy de jo ez igy, mert RESTful meg babamfasza...
Innentol kezdve azert elegge osszehasonlithato.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Apropó RESTful service. Ez a Service egyébként annyira RESTful, hogy semennyire. Minden POST-ként megy, akár adatlekérés, akár új elem beszúrása.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
A top 10 Rest anti-patterns listákban az első szokott lenni :)
---
Régóta vágyok én, az androidok mezonkincsére már!
- A hozzászóláshoz be kell jelentkezni
Akkor az nem REST service, hanem egy halom HTTP endpoint. Ne a REST-et tessék szidni, ha valaki nem tudja, hogy mi az, arról nem a REST tehet.
- A hozzászóláshoz be kell jelentkezni
Attól, hogy szarul implementált, attól nem változik a lényeg: SOAP kiváltására fos és a fos terjed.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Egyébként tudunk olyan ökoszisztémáról, ahol (akár 3rd aprty libekkel) nem leeht _normálisan_ kezelni a SOAP-ot, de amúgy az adott ökoszisztéma nem amúgy is egy határ sz*r? :D
- A hozzászóláshoz be kell jelentkezni
PL/SQL. Jó az, csak nem erre.
- A hozzászóláshoz be kell jelentkezni
Na jó, de az Oracle APEX önmagában egy határ szar. :)
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni