メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

POSTするurlをブックマークしたい

最初にひとこと: POSTをブックマークすることはできません

経緯

最近また本業でWebサービスの開発とかやってます(しかもJava)。

で、Webサービスの画面って当然ログイン画面があって、開発中は対象の画面だけテストしたいんですが、毎回毎回ログインするのが大変なんですよね。

解決方法としては、PuppeteerでE2Eテストを自動化したり、デバッグ(開発中)モードであればログインをすっ飛ばすという仕組みを実装するというのもアリなんですが、そもそもユーザーIDとパスワードを付けてブックマークできたらクリックするだけで手軽なのになぁという考えから。

つまり
http://localhost:8080/your-apps/login?method=POST&user=admin&password=pass
みたいなことをやりたいって話です。
ただクエリストリングにmethod=POSTって書いてもPOSTにはなりません^^;

なので、POSTをブックマークすることは当然できないんですよね。

それなら、代わりにPOSTしてくれるページに、パラメーターをGETで渡してあげればいいじゃん、という発想から実装したものがコチラです。

 

github.com

 

細かいソースはGitHubを見てもらうとして。

file:///C:/your-local-directory/get-to-post/index.html#http://localhost:8080/your-apps/login?username=admin&password=pass

というようなURLでアクセスすれば、
#以降の内容を解釈してPOSTしてくれるというものです。
なお、formのパラメーターはクエリストリングで指定します。

また、デバッグモードも搭載しており

file:///C:/your-local-directory/get-to-post/index.html?debug#http://localhost:8080/your-apps/login?username=admin&password=pass

というような指定で、送信前のform内容可視化・自動submitオフ(submitボタン表示)で動作します。つまり、送信前のページにformが表示されるだけ。

注意

注意書きにも書きましたが、指定されたurlにどこへでもPOSTしますので、攻撃の踏み台にもなりかねないため、このindex.htmlをパブリックにアクセスできるような場所に配置・公開しないようにしてくださいね。