Come evitare più chiamate a un'API REST? [chiuso]

6

Supponiamo di avere un'API REST e posso recuperare l'elenco dei miei amici e le canzoni preferite di ciascun amico nella mia lista. Ora voglio prendere tutte le canzoni preferite di tutti i miei amici. Il problema con l'API REST è che non posso farlo usando solo una richiesta. Devo fare una richiesta per ottenere i miei amici e poi fare una richiesta per ogni amico.

Ho letto sul framework che non ricordo il nome che consente di farlo in una sola richiesta.

Conosci un'idea della tecnologia che può farlo?

    
posta Hunsu 07.05.2015 - 10:58
fonte

1 risposta

0

In questo momento sto usando Spring per gestire le chiamate REST. Funziona con Java-Annotations e può anche convertire al volo gli oggetti che stai restituendo a JSON .

Penso che sia abbastanza conveniente da usare finora e funziona bene in combinazione con Hibernate (ORM).

Ad esempio:

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return new Greeting(counter.incrementAndGet(),
                            String.format(template, name));
    }
}

Ti darà l'output:

{
    "id": 1,
    "content": "Hello, World!"
}

Ma dai un'occhiata a questo tutorial .

Per evitare più chiamate potresti semplicemente passare tutti i parametri necessari in una chiamata e semplicemente restituire un elenco di amici e le loro canzoni. L'elaborazione di dati di grandi dimensioni è un'altra cosa La primavera può fare per te .

Modifica

Leggendo nuovamente la tua domanda non sono sicuro se ciò che volevi fosse una tecnologia per le chiamate REST o se hai solo bisogno di un potente strumento ORM. In tal caso, come accennato prima, Hibernate è uno strumento molto potente. Ha la sua curva di apprendimento, ma penso che ne valga la pena. Se vai su Hibernate dai un'occhiata a questo !

    
risposta data 07.05.2015 - 11:34
fonte

Leggi altre domande sui tag