2012-11-01 9 views
17

Sto cercando gli stili di best practice per il wrapping di un'API REST in un client JavaScript leggero.Quali sono buoni esempi di librerie client API REST in JavaScript

In passato ho visto le librerie che sono attuate in uno stile come:

var request = new SearchRequest(apikey); 
request.query = "search term"; 
request.send(function(results) { 
    console.log(results); 
}); 

O quell'abbraccio HTTP più esplicitamente come:

api.get("search", "search term", function(results) { 
    console.log(results); 
}); 
api.post("comment", comment, function(results) { 
    console.log(results); 
}); 

O che avvolgono ad un livello ancora più alto :

api.search("search term", function(results) { 
    console.log(results); 
}); 
api.createComment(comment, function(results) { 
    console.log(results); 
}); 

Quali esempi di moderne librerie client JavaScript da imballaggio API REST hanno una buona hai visto di recente. Non preoccupato per i dettagli di implementazione, solo il design dell'API.

Grazie!

+2

Personalmente sono un fan del tuo terzo esempio di astrazione di livello superiore. Sembra più un SDK e meno un involucro leggero. –

risposta

10

Ho visto un video davvero buono sulla buona progettazione dell'API. Sicuramente vale la pena guardare.

RESTful API Design - Second Edition

È possibile anche ottenere un libero libro Web API Design - Crafting interfacce che gli sviluppatori Amore oltre al video qui sopra andando a http://bit.ly/M28lOu

Per quanto riguarda gli involucri può valere la pena di pensare al seguente:

  1. Rendi coerente il tuo wrapper.

adottare gli standard, le convenzioni di denominazione, ecc del linguaggio di programmazione o della comunità si sta lavorando per rendere l'involucro si sentono più naturale possibile per coloro che lo utilizzano.

  1. Per avvolgere o per astrarre? Questa è la domanda.

Con Wrapping si imitano i metodi API REST e la struttura il più possibile, ma semplicemente fare alcune delle cose difficili più facili. Uno dei maggiori vantaggi di questo approccio è che rende più semplice l'aggiornamento quando l'API REST di destinazione viene aggiornata.

Astraendo è utile quando l'API REST di destinazione è complesso o si comporta e si guarda in modo non standard. In questo caso, i metodi e le chiamate del wrapper potrebbero non assomigliare affatto ai metodi dell'API REST di destinazione, ma alla fine semplificheranno la vita (si spera) di coloro che utilizzano il wrapper.

3

Controlla questi:

Non ci sono altre discussioni simili su StackOverflow, come JavaScript REST client Library

+0

Restangular minified version 20kb, ma Restful minified version 78kb. Troppo per REST, come penso. – Seigiard

+1

restful.js dipende da immutable.js, che rappresenta più di 50kb dell'origine restful minified. Se usi già immutable.js nella tua applicazione (che è molto comune per i progetti ReactJs/Redux), e usi webpack per la compilazione, immutable.js verrà aggiunto solo una volta. Quindi la dimensione del riposante sarà molto simile a Restangular. –

+1

Inoltre, se usi Angolare, dovresti sicuramente usare Restangular. Restful.js è più adatto alle applicazioni che non utilizzano Angular. E in tal caso, parte della fonte di Anguler (ad es. $ Http) deve essere trasferita in qualche modo al nucleo riposante. –

Problemi correlati