Aqueductのコントローラでクエリストリングを取得する方法
前提
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の標準ライブラリhttp
のUri
クラスのインスタンスを保持しています。
なので単純にこいつを利用してあげることが可能です。
@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も標準搭載ですので中々いたれりつくせりで良い感じです。
リンク
公開日:2019/03/22