我有一个从自定义 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 中查询的语法很接近,所以这是我能想到的在此处指定它的唯一方法。
我不知道还有什么可以帮助描述我的请求。希望这是不言而喻的。这里描述了一个积极的增强,但它似乎是指限制响应中的字段,而不是项目。
更新:
在客户端库中四处寻找,我找到了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");