Qual è il vantaggio dei client API?

5

Al mio nuovo lavoro sto lavorando a un'applicazione web CRUD esistente di base in MVC + con un front-end angolare.

L'API MVC ha una specifica Swagger e viene utilizzata per generare un client API con il riposo automatico. Questo client API viene utilizzato dal front-end.

Ora capisco l'implementazione tecnica ma mi sto gratificando sul perché questo è stato fatto? Qual è il vantaggio di un client API invece di chiamare direttamente l'API? Questo mi sembra un reindirizzamento senza fondamento.

Qualcuno può spiegare quali sono le decisioni progettuali di base sul perché utilizzare il client API?

    
posta rg13376077 14.07.2016 - 12:31
fonte

3 risposte

5

I vantaggi:

  • Per API particolarmente complesse, questo può semplificare l'implementazione per gli sviluppatori di front-end. Ad esempio, potrebbe nascondere qualsiasi gestione di autenticazione / sessione, consentendo a Front-end di creare un oggetto con i parametri di autenticazione e quindi utilizzare un metodo getData () che può creare nuove sessioni, se necessario.
  • Può consentire alla tua API di essere più complicata. Ad esempio, potresti implementare qualcosa per crittografare / comprimere / oscurare i dati in transito (anche se ammetto che probabilmente ci sono esempi migliori).
  • Incoraggia Separazione delle preoccupazioni / riordinare il codice sul front-end. In genere è una cattiva pratica mescolare diversi tipi di codice, poiché le cose possono diventare molto complicate da seguire man mano che il progetto cresce.
  • Permette di sostituire l'API in futuro. Forse qualcuno riorganizzerà il client API per indicare un altro servizio con dati simili (ad esempio, passando da Yahoo Stock a API Google Stocks). Avere il codice client API già separato sarà di grande aiuto con questo.

L'alternativa che hai citato ("chiama l'API direttamente") come hai fatto? Probabilmente hai scritto il codice per chiamare l'API, che probabilmente sarebbe stato un buon inizio per il client API. perché non lasciare che qualcosa generi automaticamente questo per te?

    
risposta data 19.07.2016 - 16:46
fonte
0
  • È possibile utilizzare i client API per astrarre alcuni dettagli HTTP dai consumatori (URI delle risorse, gestione degli errori di risposta, ecc.) In genere è più semplice chiamare un metodo semplice su un oggetto e ottenere un risultato rispetto alla creazione di un HTTP richiesta e gestione della risposta.

    Questo potrebbe essere visto come l'alimentazione del cucchiaio per gli sviluppatori consumer, ma può essere adatto per i team meno esperti o sviluppatori che non possono essere disturbati a utilizzare un'API REST (che è certamente una vista discutibile).

  • Un altro vantaggio è che ti dà più controllo sull'accesso alla tua API se hai più utenti. Se si raggruppa il client con un sistema di gestione dei pacchetti, si ottengono tutti i vantaggi in termini di politica della versione e distribuzione. Puoi anche tracciare con maggiore precisione quale consumatore usa quale versione, obbligare i consumatori a specificare cose quando usi il client in modo da avere statistiche, ecc.

risposta data 19.07.2016 - 14:12
fonte
-2

Can anyone explain what are the basic design decision on why API client should be used. What are really nice use cases for such a pattern etc.

Se hai 3 clienti, con diverse implementazioni, in che modo separerai il tuo codice? Scriveresti 3 siti Web diversi e unirai le tue modifiche? Scriverete parametri opzionali? Spero di no.

Un motivo per utilizzare la rotta dell'API è la separazione delle responsabilità. L'URL, link , spiega piuttosto bene come il cloud assisterà con la tua API REST. Spero che questo aiuti!

    
risposta data 14.07.2016 - 16:38
fonte

Leggi altre domande sui tag