2016-11-25 10 views
3

사용자 정의 Google 엔드 포인트에서 데이터를 가져 오는 다트 애플리케이션이 있습니다. 나는 클라이언트 라이브러리를 생성하기 위해 discoverapis_generator를 사용하고있다. 나는 다음과 같은 쿼리를 실행하고 싶습니다 :Google Endpoints 용 Dart에서 검색어 매개 변수를 지원합니까?

import endpoints_api.dart as EndpointsApi; 
api = new EndpointsApi.MyApi(); 
api.photos.list(api.Photo.post_id == "post1"); 

endpoints_api.dart은 discoveryapis_generator generate.dart에 의해 생성 된 클라이언트 라이브러리입니다. MyApi은 내 사용자 정의 엔드 포인트 API이며 photos은 해당 서비스 중 하나입니다. I Photo은 인스턴스 속성이 post_id 인 종점 모델 클래스입니다.

요청을 실행하면 Photo에 정적 getter "post_id"가 없다는 오류가 발생합니다. 이것은 Python API의 쿼리 구문에 가깝기 때문에 여기에서 지정할 수있는 유일한 방법이었습니다.

내 요청을 설명하는 데 도움이 될만한 다른 정보가 없습니다. 희망적으로 그것은 자명하다. here에 대한 설명이 활발히 이루어졌지만 응답이 아니라 항목보다는 필드를 제한하는 것으로 간주됩니다.

는 업데이트 :

클라이언트 라이브러리에 주위를 파고, 나는 list 방법에 대한 소스를 발견했다. 쿼리 매개 변수가 지원되는 것처럼 보입니다. 그러나 그것은 나에게 완전히 정확하지는 않은 것처럼 보입니다. 정식 매개 변수 목록이 괄호로 둘러싸인 API에 지정된 쿼리 매개 변수가 포함

if (regionId != null) { 
    _queryParams["region_id"] = [regionId]; 

으로부터 region를 추출하는 [regionId]의 브라켓 위치 :

async.Future<PhotoCollection> list({core.String postId, core.String regionId}) {... 

하지만 메소드 본문에를, 다음 거기 매개 변수 목록?

매개 변수 목록에서 중괄호를 꺼 냈습니다.

async.Future<PhotoCollection> list(core.String postId) {... 

짜잔 : 나는 오직 postId으로 조회 할 것으로 예상하기 때문에, 그 유일한 매개 변수입니다. 지금 바로 전화에 값을 지정하여 쿼리에 매개 변수를 추가 할 수 있습니다

api.photos.list("post1"); 

답변

1

당신이 중괄호 방법의 매개 변수를 포장하는 경우, make them optional.

그래도 주어진 서명으로 메소드를 사용할 수 있습니다. 전달하려는 매개 변수의 이름을 추가하기 만하면됩니다.

api.photos.list(postId: "post1"); 
+0

수상자처럼 보입니다. 감사. 분명히 다트의 메서드 의미에 대한 이해는 약간 불안정합니다. –