我有一个从自定义Google端点获取数据的Dart应用程序。我正在使用discoveryapis_generator生成客户端库。我想发出一个查询类似如下:支持Dart for Google Endpoints中的查询参数?
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没有静态获取者“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");
看起来像一个赢家。谢谢。很明显,我对Dart方法语义的理解有点不稳定。 –