Devo seguire il formato hypermedia o uno schema?

3

Sono abbastanza nuovo sul campo. Quindi ho bisogno di chiarire quale sarebbe il metodo migliore da seguire nella seguente situazione.

Sto sviluppando un'API riposante utilizzando php e uso json per rappresentare le risorse. Mentre sono a questo ho letto che è considerata una buona pratica conformarsi con " HATEOAS " (vero?) . Quindi volevo usare qualcosa come HAL o JSON-LD giusto? Cosa succede se faccio la mia formattazione mentre utilizzo le rappresentazioni della relazione di collegamento IANA e faccio sapere ai miei clienti cosa dovrebbero aspettarsi tramite lo schema json-hyper?

Qual è il metodo migliore? Ho fatto incasinare tutto?

    
posta Nalaka Hewapathirana 15.12.2014 - 18:01
fonte

1 risposta

5

HATEOAS è un argomento un po 'controverso. Molte persone ritengono che sia un esempio di overengineering e non ne vedano alcun beneficio pratico. Credo che offra un approccio naturale e ragionevole per l'implementazione delle API Web, con i vantaggi di un maggiore disaccoppiamento tra server e client e un carico inferiore per gli sviluppatori client (vedere la mia risposta a" REST HATEOAS - Come fa il client a conoscere la semantica dei collegamenti? ").

Detto questo, a mia conoscenza ci sono ancora alcune convenzioni ben stabilite per le API Web. Farai i tuoi utenti e te stesso un favore adottando uno standard esistente come HAL , però:

  • Gli sviluppatori esperti capiranno subito la tua API senza dover apprendere le tue convenzioni esclusive.

  • Sarai in grado di utilizzare librerie come ROAR che generano rappresentazioni conformi agli standard più o meno automaticamente.

  • I client saranno in grado di utilizzare strumenti come HyperResource che utilizzano API conformi agli standard senza programmazione aggiuntiva.

Se decidi di definire i tuoi formati e le tue convenzioni (che è ancora la norma per i progettisti di API, per quanto ne so), non solo peserai il mondo con un'altra API completamente non standard che sarai aumentando il carico di proprio in termini di consegna di documentazione e codice di esempio ai clienti.

    
risposta data 16.12.2014 - 17:25
fonte

Leggi altre domande sui tag