Nella mia azienda c'è un dibattito sull'opportunità di utilizzare la specifica API JSON o attenersi a un semplice JSON per lo sviluppo di API che verranno utilizzate da app mobili, principalmente iOS e Android.
Un argomento per l'API JSON è che poiché tutto è definito in anticipo, se i nuovi sviluppatori dovessero iniziare a lavorare sull'API dovrebbero essere in grado di trovare rapidamente ciò di cui hanno bisogno. Un altro è che poiché la maggior parte delle relazioni possono essere raggruppate in una risposta, può alleggerire il carico del server.
Un argomento contro l'API JSON è che crea problemi che prima non esistevano. Quando si usa JSON normale ci sono attributi che mantengono relazioni o oggetti dello stesso tipo per esempio: Se io dovessi avere un romanzo contenente informazioni sull'autore e sull'editore, il JSON normale sarebbe qualcosa del genere:
{
author: {
name: "John",
lastname: "Appleseed",
id: 1
},
title: "Some great novel",
publisher: {
name: "Something"
}
}
e poi, su Android, potrei creare una classe per serializzare il JSON. La classe sarebbe qualcosa di simile
class Novel {
String title;
Author author;
Publisher publisher;
}
class Author {
String name;
String lastname;
int id;
}
class Publisher {
String name;
}
e quindi Retrofit analizzerebbe la risposta e restituirà un POJO Novel.
In Swift, potremmo usare SwiftyJSON e creare alcune strutture o classi simili con la sola differenza che dovrei scrivere un codice di codice aggiuntivo per impostare i valori della classe. Questo sembra un approccio semplice.
Ma quando si utilizza l'implementazione dell'API JSON diventerà molto più complesso e illeggibile.
Riguardo all'argomento che allevia il carico del server dal momento che può raggruppare la maggior parte delle relazioni e restituirle con la risposta, puoi farlo con un semplice JSON come nell'esempio sopra.
Potrei usare alcune informazioni su se è una buona scelta usare l'API JSON con linguaggi tipizzati staticamente come Java o Swift