支持Dart for Google Endpoints中的查询参数?

时间:2016-11-25 09:45:20

标签: google-app-engine dart protorpc client-library

我有一个Dart应用程序,它从自定义Google端点获取数据。我正在使用discoveryapis_generator来生成客户端库。我想发出如下查询:

endpoints_api.dart

generate.dart是由discoveryapis_generator MyApi生成的客户端库。 photos是我的自定义端点API,Photo是其服务之一。我认为 post_id是一个端点模型类,它有一个实例属性list

发出请求会导致Photo没有静态getter“post_id”的错误。这与Python API中的查询语法非常接近,所以这是我在这里指定它的唯一方法。

我不知道在描述我的请求时还有什么可能有帮助。希望这是不言而喻的。有一个主动增强描述here,但似乎是指在响应中限制字段而不是项目。

更新

在客户端库中查找,我找到了async.Future<PhotoCollection> list({core.String postId, core.String regionId}) {... 方法的源代码。它当然看起来像支持查询参数。但在我看来,这并不完全正确。形式参数列表包含在大括号包围的API中指定的查询参数:

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

但是在方法体中,有以下内容:

[regionId]

region中的括号是否从参数列表中提取postId

我将括号从参数列表中拉出来。由于我只希望通过async.Future<PhotoCollection> list(core.String postId) {... 进行查询,这是唯一的参数:

    api.photos.list("post1");

瞧。我现在可以通过在调用中指定其值来为查询添加参数:

{{1}}

1 个答案:

答案 0 :(得分:1)

如果用花括号包装方法的参数,则为make them optional

因此,您仍然可以将您的方法与给定的签名一起使用。您只需添加要传递的参数的名称:

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