2013-02-07 20 views
5

Im utilizzando Google Endpoint Cloud App Engine e sto tentando di ricevere un parametro di raccolta. Non sono sicuro di poterlo fare. So che posso restituire una lista o qualsiasi raccolta.Parametro raccolta endpoint cloud

questo:

public List<Pair> initializationSetup(Pair pPair){} 

funziona bene, ma se provo a ricevere un elenco di coppie, non è creato il file api.

public List<Pair> initializationSetup(List<Pair> pPairs){ 

Grazie

+0

Cosa vuoi la conseguente richiesta di REST per assomigliare? Una richiesta 'GET' come'? PPairs = abc & pPairs = def & pPairs = ghi' o una richiesta 'POST' che richiede qualcosa come' {"pPairs": ["abc", "def", "ghi"]} 'nella richiesta corpo? –

+0

@Jason Hall, perché questo importa esattamente? A cosa stai puntando? – aez

risposta

10

cloud Endpoint si occupa solo con le classi avere lo standard di fagioli.

Così, ho creato una nuova classe chiamata ObjectListContainer:

public class ObjectListContainer { 
    public List<Object> getObjectsList() { 
     return ObjectsList; 
    } 
    public void setObjectsList(List<Object> objectsList) { 
     ObjectsList = objectsList; 
    } 
    private List<Object> ObjectsList; 
} 

stesso problema se si sta cercando di restituire una stringa, non si può. Devi creare un StringContainer.

+0

Penso che tu possa usare l'annotazione '@ javax.inject.Named' per' String's. Vedi [Documento degli endpoint] (https://developers.google.com/appengine/docs/java/endpoints/annotations#named). – user802421

+0

Puoi usare 'String's come parametri (con @Named, come hai detto) ma non puoi restituirli, come ha detto @davidbq. – willlma

1

Ho usato una soluzione simile dopo aver pensato durante le lunghe ore. Prova questo:

public class JsonList<T> { 
private List<T> listItens; 

public List<T> getListItens() { 
    return listItens; 
} 

public void setListItens(List<T> listItens) { 
    this.listItens = listItens; 
}} 

e nel metodo:

@ApiMethod(
     name = "name", 
     path = "path", 
     httpMethod = ApiMethod.HttpMethod.POST) 
public CollectionResponse<Information> getInformation(JsonList<String> listOfItens) {} 
Problemi correlati