2013-05-29 7 views
7

Mi piacerebbe sentire le vostre esperienze? Come posso creare un'API migliore per recuperare i dati da un database. Se si invia il nome della vista o il nome della procedura, quindi non sarebbe perfetto con Tankne in sicurezza. Quindi mi chiedo se qualcuno ha esperienza o idee su questo?API per il recupero/invio di dati da/a un database

Devo ad esempio avere un campo che indichi a cosa l'utente che connette l'API ha accesso? Accesso a tabelle e righe.

+0

controlla l'architettura SAAS. – Sebas

+0

quale lingua? –

+2

Puoi spendere tutta la tua reputazione in ricompense, ma nessuno sarà in grado di risponderti, a meno che tu non chiarisca cosa stai chiedendo. "Creare API per recuperare dati da db" suona come reinventare la ruota, o non capisco. Descrivi cosa stai cercando di fare. – TMS

risposta

3

Farò un tentativo.

Hai già menzionato API Web, quindi presumo che tu stia utilizzando ciò che significa che hai un'API REST sopra un database.

cose da fare:

  1. venire con il modello di dati che si desidera esporre agli utenti. Questo sarà probabilmente diverso in vari modi dal modello di database. Se sei un negozio potresti avere 2-3 diverse tabelle per archiviare i prodotti, ma vorrai esporre un "prodotto" con una sola chiamata API.

  2. Una volta che l'utente ha affrontato il modello di dati, iniziare a scrivere test. Hai bisogno di test unitari per i tuoi controller API Web e devi trovare un modo per prendere in giro le chiamate al database che stai facendo. I test sono vale la pena lo sforzo!

  3. Per sicurezza ci sono molte opzioni. Puoi scegliere tra HMAC (https://en.wikipedia.org/wiki/Hash-based_message_authentication_code) o OAuth (Best way to create a TOKEN system to authenticate web service calls?) o JWT (Secure WebAPI with a JWT).

  4. Dopo aver autenticato un utente, è possibile assegnare loro i privilegi. Possono leggere, scrivere e aggiornare a seconda di cosa hanno accesso. È possibile avere una tabella di database per controllare questo potenzialmente.

  5. Suggerirei di pensare al controllo delle versioni prima del tempo. La mia raccomandazione sarebbe di avere sempre due versioni della tua API: corrente e precedente. Distribuisci l'API e quando la sostituisci per la prima volta supporti l'API obsoleta e quella nuova. Non provare a supportare più di due versioni.

  6. Fai del tuo meglio per scrivere una sorta di interfaccia che astrae il database prima di inviare i dati tramite Web API. Questo ti aiuta a sostituire il database interamente in futuro, se necessario. Aiuta anche il collaudo delle unità.

Problemi correlati