3

カスタム Google エンドポイントからデータを取得する Dart アプリケーションがあります。クライアント ライブラリを生成するために discoveryapis_generator を使用しています。次のようなクエリを発行したいと思います。

import endpoints_api.dart as EndpointsApi;
api = new EndpointsApi.MyApi();
api.photos.list(api.Photo.post_id == "post1");

endpoints_api.dartdiscoveryapis_generator によって生成されたクライアント ライブラリgenerate.dartです。MyApiは私のカスタム エンドポイント API でありphotos、そのサービスの 1 つです。インスタンスプロパティを持つエンドポイントモデルクラスだと思い ます。Photopost_id

リクエストを発行すると、Photo に static 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");
4

1 に答える 1

1

メソッドのパラメーターを中かっこで囲むと、オプションになります

したがって、指定された署名でメソッドを引き続き使用できます。渡したいパラメータの名前を追加するだけです:

api.photos.list(postId: "post1");
于 2016-11-29T12:18:40.107 に答える