2013-02-07 4 views
5

Im с использованием облачных конечных точек Google App Engine и Im, пытающихся получить параметр коллекции. Не уверен, могу ли я это сделать. Я знаю, что могу вернуть список или любую коллекцию.Параметр определения конечных точек облаков

Это:

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

работает отлично, но если я пытаюсь получить список пар, файл .api не создается.

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

Благодаря

+0

Что вы хотите запрос полученный REST, чтобы выглядеть? Запрос 'GET', такой как'? PPairs = abc & pPairs = def & pPairs = ghi' или 'POST' запрос, который принимает что-то вроде' {"pPairs": ["abc", "def", "ghi"]} 'в запросе тело? –

+0

@ Джейсон Холл, почему именно это имеет значение? Что вы получаете в? – aez

ответ

10

Облако Endpoints имеет дело только с классами, имеющие стандарт боба.

Итак, я создал новый класс с именем ObjectListContainer:

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

Та же проблема, если вы пытаетесь вернуть строку, вы не можете. Вы должны создать StringContainer.

+0

Я думаю, вы можете использовать аннотацию '@ javax.inject.Named' для' String'. См. [Endpoints doc] (https://developers.google.com/appengine/docs/java/endpoints/annotations#named). – user802421

+0

Вы можете использовать 'String' как параметры (с именем @Named, как вы сказали), но не могут их вернуть, как сказал @davidbq. – willlma

1

Я использовал подобное решение после долгого размышления. Попробуйте это:

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

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

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

и в методе:

@ApiMethod(
     name = "name", 
     path = "path", 
     httpMethod = ApiMethod.HttpMethod.POST) 
public CollectionResponse<Information> getInformation(JsonList<String> listOfItens) {} 
Смежные вопросы