Write Once - Use Many per i valori di ritorno del server?

0

Bene, mi chiedevo come avrei potuto fare questo o come questo è fatto.

Avendo un server che accetta richieste HTTP e gestisce un database per un'app mobile, si suppone che fornisca dati per Android e iOS - o, diciamo - per più di un client.

Ora che scrivo il client Android in Java e il client iOS in Objective-C non posso semplicemente avere un progetto condiviso tra i miei client e il server per far sapere loro come gli oggetti restituiti dal server come dovrebbero apparire JSON come oggetti di runtime.

Ad esempio se il mio server restituisce un oggetto Java semplice che viene eseguito il marshalling su JSON:

public class Person {
    public String name;
    public int age;
}

// ..

public Person[] getListOfPersons(int minAge, int maxAge) {
    // ..
    return personList[];
}

Come posso introdurre questo valore di ritorno per tutti i tipi di client senza dover scrivere ogni oggetto più e più volte?

    
posta displayname 02.05.2015 - 01:29
fonte

2 risposte

0

Potresti voler utilizzare Buffer del protocollo Google .

You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages – Java, C++, or Python.

    
risposta data 02.05.2015 - 16:20
fonte
0

Ci sono un numero qualsiasi di soluzioni a questo, ma fondamentalmente quello che stai cercando è un modo per fornire un file di specifiche per la tua API che può essere usato per creare un client per tale API.

Se crei un'API REST di "livello 3" (vedi: Richardson Maturity Model ) puoi lasciarla quasi al cliente per capire (anche se in effetti le implementazioni sembrano fare affidamento sull'API che fornisce alcuni dati strutturati secondo uno standard per "aiutare" il cliente). Tuttavia, c'è un problema nel raggiungere quel livello che è difficile - ad entrambe le estremità.

Quindi in modo più pragmatico scegli una definizione di api / schema e quella che sembra ottenere una trazione significativa è Swagger e on github .

    
risposta data 03.05.2015 - 12:39
fonte

Leggi altre domande sui tag