WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   XML-RPC eller RESTful för API? (https://www.wn.se/forum/showthread.php?t=1050073)

pelmered 2011-09-17 23:07

XML-RPC eller RESTful för API?
 
Jag ska göra ett API som det kommer vara ganska många som ska kunna komma åt i framtiden så det bör vara en lösning som går att skala hyfsat bra.

Vi API:et kommer man både kunna hämta och ladda upp/spara data. Hur ration kommer vara är väl lite osäkert, men jag uppskattar att det kommer vara ungefär 50% gets och 50% puts/posts.

Det kommer vara en lösning med autentisering med api keys som det brukar vara med stängda API:er.

Det måste vara enkelt att implementera detta på klienterna som ska kommunicera med API:et.

Detta ska implementeras i CodeIgniter om det har någon betydelse för valet. Implementationer finns som librarys till CodeIgniter:
REST:
https://github.com/philsturgeon/codeigniter-restserver
http://net.tutsplus.com/tutorials/ph...codeigniter-2/
XML-RPC:
http://codeigniter.com/user_guide/libraries/xmlrpc.html

Fördelar/nackdelar med de båda?
Vad föredrar ni?

Jonas 2011-09-19 01:10

SOAP har större utsträckning när det gäller APIer, dels för att stödet finns med i dom flesta plattformarna och man slipper tänka på externa bibliotek för kommunikationen.

Magnus_A 2011-09-19 08:54

Citat:

Ursprungligen postat av Jonas (Inlägg 20417960)
SOAP har större utsträckning när det gäller APIer, dels för att stödet finns med i dom flesta plattformarna och man slipper tänka på externa bibliotek för kommunikationen.

Intressant. Läser man på svenska Wikipediasidan om SOAP verkar det vara helt värdelöst, men på den engelska så är tonen betydligt positivare.

Inte lätt att hitta rätt i detta. Skulle vara kul att höra mer om soap och eventuella fördelar och nackdelar.

Finns även denna tråd:
Bygga eget API, tips?

tartareandesire 2011-09-19 09:20

Citat:

Ursprungligen postat av Magnus_A (Inlägg 20417970)
Intressant. Läser man på svenska Wikipediasidan om SOAP verkar det vara helt värdelöst, men på den engelska så är tonen betydligt positivare.

Svenska Wikipedia håller genomgående ganska låg kvalitet om det inte rör rent svenska företeelser. Dåligt språk, mycket åsikter, konstiga formuleringar etc.

nosnaj 2011-09-19 10:07

Varken Google, Facebook eller Twitter kör väl SOAP?
Jag gillar RESTful

pelmered 2011-09-19 16:00

Citat:

Ursprungligen postat av Jonas (Inlägg 20417960)
SOAP har större utsträckning när det gäller APIer, dels för att stödet finns med i dom flesta plattformarna och man slipper tänka på externa bibliotek för kommunikationen.

Tack för svaret.
SOAP är väl det jag har bäst kunskap om(har läst en 15p kurs i SOA med SOAP), men jag valde bort det för att är lite väl komplext för att göra ett API. Men du har bra poäng med att det finns inbyggt stöd för SOAP i de allra flesta språk, det är en stor fördel. PHP har ju exempelvis SoapClient som gör att man kan göra SOAP-anrop med bara två rader:
PHP-kod:

$client = new SoapClient("http://uri/soap.wsdl");
$client->Function(); 

RESTful kan man ju lösa med cURL, men det blir ju några fler rader kod då(Är cURL aktiverat/installerat på webbhotell generellt sett?)

XML-RPC bör man väl använda någon extern klass eller bibliotek för att använda APIet.

En av de viktigaste sakerna är som sagt att det är något är enkelt att implementera och som det finns en del kunskap om bland utvecklare.

Citat:

Ursprungligen postat av Magnus_A (Inlägg 20417970)
Intressant. Läser man på svenska Wikipediasidan om SOAP verkar det vara helt värdelöst, men på den engelska så är tonen betydligt positivare.

Inte lätt att hitta rätt i detta. Skulle vara kul att höra mer om soap och eventuella fördelar och nackdelar.

Finns även denna tråd:
Bygga eget API, tips?

Tack!
Den tråden har jag kollat på och det var en hel del bra tips, men inte så mycket om vilken teknik man ska använda sig och framför allt inga för- eller nackdelar med de olika. Det är främst det jag är ute efter här även om generellt tips om vad man ska tänka på när man bygger ett API är mycket välkomna.



En sak till som jag funderat på är autentiseringen. Är det en bra idé att använda OAuth för detta?
Vad rekommenderar ni för att göra det både säkert och enkelt att implementera?

Magnus_A 2011-09-20 08:16

Jag kan ju bara säga att jag använder några API:er som jag betalar för och där är det REST för hela pengen samt att man autentiserar med en unik hash och ip-nummer., eller bara med unik hash.

pelmered 2011-09-20 13:20

Citat:

Ursprungligen postat av Magnus_A (Inlägg 20418104)
Jag kan ju bara säga att jag använder några API:er som jag betalar för och där är det REST för hela pengen samt att man autentiserar med en unik hash och ip-nummer., eller bara med unik hash.

Jo, det känner jag till. Man har en public key och en secret/private key.

Är det tillräckligt säkert om man använder digest authentication?

Jag kommer ha en del känslig kunddata i API:et så säkerheten är viktig.

JLE 2011-09-20 13:41

Jag röstar för JSON REST

nosnaj 2011-09-20 16:11

Citat:

Ursprungligen postat av Jonas (Inlägg 20417960)
SOAP har större utsträckning när det gäller APIer, dels för att stödet finns med i dom flesta plattformarna och man slipper tänka på externa bibliotek för kommunikationen.

Skulle bli förvånad om du hittar en plattform stom stödjer SOAP med inte REST :)
Tvärtom finns det säkert fullt med exempel på.

Kolla gärna om Android, iOS, Symbian osv är bra på SOAP och inte drar alltför mkt kraft.


Alla tider är GMT +2. Klockan är nu 08:32.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson