chiamate api multiple vs apis più complessi

0

Ho fornito un'API Web (.NET MVC 5) di un database Oracle alle persone che stanno creando un'app mobile. Devo ammettere che non sono molto bravo in questo. Ho scoperto che posso facilmente produrre oggetti di trasferimento dati per realizzare schermi JSON molto semplici.

La mia domanda è se sia fattibile chiedere agli sviluppatori mobili di effettuare più chiamate all'API per ottenere i dati di cui hanno bisogno. Ciò sarebbe in contrasto con me fornendo un modello più complesso che fornisce tutte le informazioni in UNA chiamata.

Come puro esempio ... se avessimo a che fare con animali, nella mia API avrebbero bisogno di chiamare sia la categoria (api / categorie) che il nome dell'animale (api / animali) e collegare i 2 insieme a seconda della loro ha bisogno di:

..... chiama 1 a category_table

[{
CATEGORY_ID: 1,
CATEGORY_NAME: "Dog"
},
{
CATEGORY_ID: 2,
CATEGORY_NAME: "Cat"
}]

..... chiama 2 to animal_table

[{
ANIMAL_ID: 1,
CATEGORY_ID: 2,
NAME: Tabby
},
{
ANIMAL_ID: 2,
CATEGORY_ID: 2,
NAME: Lion
},
{
...etc,etc,
}
]

L'altra opzione sarebbe quella di utilizzare JSON più complessi utilizzando gli array in modo che effettuino una sola chiamata. Che sto avendo qualche difficoltà con. Al momento le API sono molto semplici quindi potrebbero dover chiamare alcune API. Ho provato a utilizzare direttamente il modello che avevo creato dal DB, ma ho finito con l'enorme quantità di dati prodotti (array all'interno di array all'interno di array, ecc. Ecc.). Ho dovuto usare DTO ma ho difficoltà a utilizzare gli array.

La domanda è se sia fattibile fare in modo che gli sviluppatori effettuino più chiamate anziché una risposta JSON più complessa. Programmeranno i dispositivi mobili IOS usando swift.

In altre parole, potevo mettere una serie di ogni animale nella chiamata di categorie (era forse un esempio semplicistico). Non sto parlando di mettere il category_name nell'api / animali ... sarebbe facile! Intendo una qualche forma di array associativi.

    
posta Cheesus Toast 05.03.2016 - 19:12
fonte

1 risposta

1

È questione di soddisfare il più possibile ASCIUTTO. Dici che il tuo servizio ha solo un client, un'app per iOS, ma cosa succede quando qualcuno decide di scrivere un'app per Android o un'app web? Quanto della logica è che la seconda app dovrà duplicare a causa di come hai scritto il servizio?

Scrivi il tuo servizio in modo tale da ridurre il più possibile la logica duplicata. Ciò significa che se la tua API richiede ai client tutti di chiamare categories prima che possano chiamare animals , allora stai forzando i client tutti a duplicare la logica.

Sì, questo significa più lavoro per te, l'assillato fornitore di servizi, ma è meglio avere un programmatore incaricato di un pezzo di logica costruito in un posto piuttosto che avere più programmatori ciascuno incaricato di gestire quel pezzo di logica in diversi posti.

    
risposta data 06.03.2016 - 00:51
fonte

Leggi altre domande sui tag