我有一个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}}
答案 0 :(得分:1)
如果用花括号包装方法的参数,则为make them optional。
因此,您仍然可以将您的方法与给定的签名一起使用。您只需添加要传递的参数的名称:
api.photos.list(postId: "post1");