2013-02-07 40 views
5

Im sử dụng Điểm cuối đám mây của Máy ứng dụng của Google và Im đang cố gắng nhận thông số thu thập. Không chắc chắn nếu tôi có thể làm điều này. Tôi biết tôi có thể trả lại một Danh sách hoặc bất kỳ Bộ sưu tập nào.Bộ sưu tập điểm cuối đám mây Tham số

này:

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

trình tốt, nhưng nếu tôi cố gắng để nhận danh sách các cặp, các tập tin .api không được tạo ra.

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

Cảm ơn

+0

Những gì bạn muốn các yêu cầu REST kết quả tìm kiếm như thế nào? Một yêu cầu 'GET' như'? PPairs = abc & pPairs = def & pPairs = ghi' hoặc một yêu cầu 'POST' lấy một cái gì đó như' {"pPairs": ["abc", "def", "ghi"]} 'trong yêu cầu thân hình? –

+0

@ Jason Hall, tại sao điều này lại quan trọng? bạn đang nhận được gì vào? – aez

Trả lời

10

điểm cuối đám mây chỉ giao dịch với các lớp học có tiêu chuẩn đậu.

Vì vậy, tôi đã tạo ra một lớp mới có tên ObjectListContainer:

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

Cùng một vấn đề nếu bạn đang cố gắng để trả về một String, bạn không thể. Bạn phải tạo một StringContainer.

+0

Tôi nghĩ bạn có thể sử dụng chú thích '@ javax.inject.Named' cho' Chuỗi '. Xem [Tài liệu điểm cuối] (https://developers.google.com/appengine/docs/java/endpoints/annotations#named). – user802421

+0

Bạn có thể sử dụng 'String' làm tham số (với @Named, như bạn đã nói) nhưng không thể trả về chúng, như @davidbq nói. – willlma

1

Tôi đã sử dụng một giải pháp tương tự sau khi nghĩ trong thời gian dài. Hãy thử điều này:

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

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

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

và trong phương pháp của bạn:

@ApiMethod(
     name = "name", 
     path = "path", 
     httpMethod = ApiMethod.HttpMethod.POST) 
public CollectionResponse<Information> getInformation(JsonList<String> listOfItens) {} 
Các vấn đề liên quan