我有一個從自定義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方法語義的理解有點不穩定。 –