以前PlayFrameworkで全リクエスト/レスポンスを取る必要に駆られたので、その方法をあれこれ考えたり調べりした結果をここに記しておきます。playframework/play-java-seed.g8あと僕はEclipseで開発しているので、それ用の設定としてちょこっと。eclipseこれでEclipseのための準備は整いました。API作成APIがないとリクエスト飛ばして試せないので仕方なく作ります。controllers.ApiController.postGETリクエストに、POSTリクエスト。適当にsessionも入っていたりする設定です。本題そんな状況で、可能な限り完璧な状態の全リクエスト/レスポンスの内容をログに出力する、というのがやりたいことです。「完璧な」というのはリクエストメソッド、リクエストURL、リクエスト/レスポンスbody、セッション、など。リクエストはcurl使うなりChromeの拡張使うなりフロント作りなりして適当に。僕はChromeの拡張を使いました。便利!気合いでLoggerを挟むこんな感じです。post().ただ、これは気合いでしかありません。今回の例ではAPIが3つしかないから全然問題ありませんけど、このAPIが10、20、30...と増えてきたら、それはもう大変面倒なことに...。数十くらいなら書いてしまっても大丈夫といえば大丈夫な気がします。"session_content");みたいな感じで設定されているものとしています。これはしんどいので、別の方法を考えます。Filterを利用するFilterが何かは僕もよく分からないので割愛します。他の方々のありがたい記事がありますのでそちらを参考にしていただいて。リクエストやレスポンスをフィルターしているものなのだろうという理解です。Filterを使ってリクエスト/レスポンスをログに出力してみます。app下にfiltersディレクトリを作って、その下にMyFilterクラスを適当に作ります。filters.MyFilterを追記します。すると、こんな感じに。play.http.HttpEntity$Strict@273ad9ad面倒になったのでPOSTリクエストだけで試しました。この方法だとリクエストボディもセッションもレスポンスボディの内容も取れないので、残念。そもそも用途が明らかに違うのでそんなこと言っても仕方ないのですが。これなら一々全てのAPIに何かを加えたりという気合いは必要ありません。Authenticatorを利用するAuthenticatorが何かは僕もよく分からないので割愛します。他の方々のありがたい記事がありますのでそちらを参考にしていただいて。なんだかリクエストをインターセプトしているみたいなのでそれを利用しようという魂胆です。適当にappの下にauthenticatorsというディレクトリを作って、その下にMyAuthenticatorというクラスを作りました。設定したAuthenticatorを通るようになります。名前の通り本来は認可のための機構でしょうけど、細かいことは気にしません。Authenticatorを通るので、だったらそこでログ取れば良いのでは、という安易な考えです。これだとリクエストは取れるものの、レスポンスが取れません。play.mvc.Http$Response@52f8ea91レスポンスボディ...。ちなみに、このアノテーションはAction毎にではなくクラス単位で付けることができます。適当にappの下にinterceptorsというディレクトリを作って、その下にMyActionCreatorというクラスを作りました。interceptors.MyActionCreatorを追記します。これで出力させるとこんな感じです。play.http.HttpEntity$Strict@21b69a9どうしてもレスポンスボディだけ取れませんでした。まとめというわけで自分にはこれが限界でした。ActionCreatorを使っておけばたくさん取れるという認識です。取れる上に何かもっときれいな方法はあるのだろうか...。ちなみに、以上のものを全て繋げるとこんな感じで出力されます。play.http.HttpEntity$Strict@d1c58cへぇ、そんな順番なんだぁ、というただそれだけです。こちらからの報告は以上です。blo...2018-10-23Angular6とPlayFramework2.6でWebアプリの雛形制作(リクエスト送受信)こんにちは。この間Angular6とPlayFramework2.6で...2018-07-24VAPIDを用いたデスクトップ通知のAngular6とJavaによる実装こんにちは。APIを記述するこんにちは、ゴーリストのトゥアンです。アップデートしてみたこんにちは、ゴーリスト開発の飯尾です。»プロフィールゴーリストのエンジニア達のブログです。Frameworkで画像・アセットをユーザーに届ける月別アーカイブリンクセールスブログデザインブログゴーリストブログスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。