google-app-engine - 支持 Dart for Google Endpoints 中的查询参数吗?

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

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

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 是它的一项服务。我认为 Photo 是一个端点模型类,它有一个实例属性post_id

发出请求会导致错误,大意是 Photo 没有静态 getter“post_id”。这与 Python API 中的查询语法很接近,所以这是我能想到的在此处指定它的唯一方法。

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

更新:

在客户端库中四处寻找,我找到了 list 方法的源代码。看起来确实支持查询参数。但在我看来,这并不完全正确。形式参数列表包含 API 中指定的查询参数,用大括号括起来:

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

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

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

[regionId]中的括号是否是从参数列表中提取region

我把大括号从参数列表中拉了出来。因为我只希望通过 postId 进行查询,所以这是唯一的参数:

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

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

    api.photos.list("post1");

最佳答案

如果将方法的参数包裹在花括号中,则 make them optional .

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

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

关于google-app-engine - 支持 Dart for Google Endpoints 中的查询参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40801901/

相关文章:

python - 在 python 中查找类型 - TypeError 'unicode' 对象不可调用

dart - 在 flutter 中从 tab1 切换到 tab3 会出现错误 - 最小 flutter App

protocol-buffers - 不带参数的 Protobuf RPC 服务方法

dart - 如何在 VSCode 中重命名 dart 文件?

flutter - 我怎样才能让一行在 flutter 中填满整个空间而不溢出?

google-app-engine - ProtoRPC 设置基本的 hello world 不起作用

python - 对于某些数字,IntegerField 值会转换为字符串

python - GQL 与 Google 应用引擎和 Google 云数据存储使用的语言相同吗?

google-app-engine - CookieJar 不捕获传入的 cookie

google-app-engine - Passport.js 等同于 Python?