前提

AqueductはDart用のフルスタックWebフレームワークです。

今回、URLに?name=hogehogeというようなクエリストリングが有る場合に、どのようにそれを取得したら良いのか、という事を調べましたのでメモです。
なお、ControllerはResourceControllerを継承したREST用Controllerです。

@Bind.query()を使う

公式のチュートリアルにも有るとおりの方法です。

@Operation.get()
Future<Response> list({@Bind.query('name') String name}) async {
  print(name);
  return Response.ok(...なんか...);
}

Uriクラスを使う

Aqueductの提供しているRequestクラス内のメンバを辿ると、Dartの標準ライブラリhttpUriクラスのインスタンスを保持しています。
なので単純にこいつを利用してあげることが可能です。

@Operation.get()
Future<Response> list() async {
  Map<String, String> params = request.raw.uri.queryParameters;
  print(params['name']);
  return Response.ok(...なんか...);
}

まとめ

DartというとどうしてもFlutterでのスマートフォンアプリ開発の話題になりがちですが、個人的には型が有るけど省略できるしユルフワな感じで開発できる言語、という感じでDartが最近のお気に入りです。
なので、自分の主戦場であるWebアプリ開発のサーバサイドでも使いたい、ということでAqueductの勉強中です。
標準でPostgreSQLをサポートしていてDBMigrationツールも有り、さらにORMも標準搭載ですので中々いたれりつくせりで良い感じです。

リンク

Dart
Aqueduct