Mojoフレームワーク開発の進捗
今日は、Webアプリケーションの「入り口」とも言える重要な機能、クエリパラメータのパース処理を実装しました。これは、ユーザーがURLの末尾に付けて送ってくる様々な情報(例えば、検索キーワードやユーザー設定など)を、プログラムが理解できる形に整える機能です。
具体的には、以下のような複雑なURLを正しく解釈できるようにしました。
http://localhost:8080/custom/?name=Taro+Tanaka&age=30&hobbies=reading&hobbies=movies&sports=[basketball,soccer]
この短いURLの中には、様々なデータ形式が詰め込まれています。今回の実装で、Webではおなじみの下記パターンに一通り対応できました。
name=Taro+Tanaka
のような基本的なキーと値のペアhobbies
のように、一つのキーに複数の値が指定されたケースsports
のように、角括弧[]
を使ったリスト形式- スペースが
+
になるような「パーセントエンコーディング」された文字のデコード
特に、単一の値、複数の値、リストといった異なる形式のデータを、フレームワーク内部でどういうデータ構造として持つのが一番使いやすいか、という設計を考えるのがパズルのようで面白い部分です。
さて、次はどこに手をつけようかと思案中です。現状ではすべての値が単なる文字列として扱われていますが、これを数値や真偽値など、適切な型として扱えるようにする機能は必須だと考えています。また、今回作った仕組みを、フレームワークを使う開発者がより直感的かつ快適に扱えるよう、データ構造そのものの改善や、便利なメソッドの追加にも取り組んでいきたいです。
地道な作業ですが、フレームワークの土台を一つひとつ固めていくのは、やはり楽しいものですね。
次の日記もぜひ読んでください、何卒🔥