Quando dovrei usare AtomPub?

11

Ho condotto alcune ricerche sulla progettazione di servizi web RESTful e ho raggiunto quello che ritengo sia un punto di decisione fondamentale, quindi ho pensato di offrirlo alla comunità per avere qualche consiglio.

In linea con i principi di un'architettura RESTful, voglio presentare un'API individuabile, quindi supporterò i vari verbi HTTP nel modo più completo possibile. La mia difficoltà arriva con la scelta della rappresentazione di quelle risorse. Vedete, sarebbe facile per me venire con la mia API che spiega come i risultati della ricerca devono essere presentati e come vengono forniti i collegamenti ad altre risorse, ma questo sarebbe unico per la mia applicazione.

Ho letto di Atom Publishing Protocol ( RFC 5023 ), e di come OData ne promuove l'uso, ma sembra aggiungere un ulteriore livello di astrazione su ciò che è (attualmente) un'API piuttosto semplice.

Quindi la mia domanda è: quando uno sviluppatore dovrebbe selezionare AtomPub come scelta di rappresentazione - se non del tutto? E se no, qual è l'attuale approccio raccomandato?

    
posta Gary Rowe 30.05.2012 - 10:42
fonte

1 risposta

9

Dopo aver fatto una discreta ricerca in questo, ecco i miei risultati:

Sembra che ci siano 3 formati e approcci principali: AtomPub, OData e HAL. Ho riassunto la ricerca per ciascuno di seguito.

AtomPub

  • Pro: standard consolidato
  • Pro: funziona con XML e JSON
  • Pro: ha un eccellente supporto Java tramite Apache Abdera
  • Contro: Abdera introduce molte dipendenze
  • Con: molto complesso con il lato server
  • Con: Difficile creare un client JavaScript completo

OData

  • Pro: build su AtomPub
  • Pro: funziona con XML e JSON
  • Pro: ha un buon supporto Java attraverso il progetto odata4j
  • Pro: fornisce una buona struttura di query URI

  • Con: introduce un framework completo (essenzialmente sostituisce Dropwizard)

  • Con: molto complesso con cui lavorare, in particolare il modello di dati di entità (EDM)
  • Con: Difficile trovare una buona libreria client JavaScript senza fare affidamento su strumenti solo per Windows per EDM

HAL

  • Pro: introduce un approccio leggero ed estensibile
  • Pro: funziona con XML e JSON
  • Pro: Trivial per creare un modello JAXB per implementarlo (senza dipendenze)
  • Pro: fornisce un buon framework di collegamento
  • Pro: banale per creare un client JavaScript utilizzando l'analisi XML jQuery
  • Con: non ratificato (sebbene IETF sia stato contattato)

Quindi, quando dovrei usare AtomPub?

Da quanto sopra, scegli AtomPub se sei soddisfatto della complessità aggiuntiva e vuoi utilizzare le librerie standard per i tuoi clienti. Questo sarebbe probabilmente il caso se stai eseguendo un repository di documenti di grandi dimensioni.

Ho messo più dettagli (che è fuori dal campo di applicazione per questa domanda) in un recente articolo del blog che potrebbe essere di aiuto agli altri.

    
risposta data 26.07.2012 - 15:56
fonte

Leggi altre domande sui tag