やりたいこと Plugはとても便利。特にNode.jsからやってきた自分にとっては、Plug = Middlewareということで非常にとっつきやすい。こいつを使いこなすことで幸せになれるんじゃないかと本能的に感じた。 (公式)Plug Guide RackやConnectを触っていた人にはすぐとっつける内容だと思うが、今回は違ったバックグラウンドの方でもわかるように書く。 Plugって何? HTTP Request/Responseをまとめた"connection"をリレーする、プラグインのスタック。 Phoenixが提供するPlug Phoenix.Contoller配下にpluggableな実装がまとめられている。 (公式)Phoenix.Controller 必要なものは一通り揃っている印象。 今回作ってみるPlug APIリクエストの送信元が、localhostか、ローカルネット
![[Elixir] PhoenixでPlugの自作 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e340c86054a3ce0aea4e776c66745124bd39d505/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGNTY0NCUyRnByb2ZpbGUtaW1hZ2VzJTJGMTQ3MzY4MjE2MT9peGxpYj1yYi00LjAuMCZhcj0xJTNBMSZmaXQ9Y3JvcCZtYXNrPWVsbGlwc2UmZm09cG5nMzImcz01YjRjNmNlYzdlMzQ2Njg1OWI3NGVmYjZmMjc4NWJlMg%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253D1875469e12d646b293317dcd5ed54352%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JTVCRWxpeGlyJTVEJTIwUGhvZW5peCVFMyU4MSVBN1BsdWclRTMlODElQUUlRTglODclQUElRTQlQkQlOUMmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz03Nzc3ZjA5ODliYTc5MGIyOTIyODQ4ZDA1YjY0Yzg2Mg%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBGTDRUTGlOMyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPWRiM2I4MDM2NmNmY2ZiMzQ0YzE0OTc1MjIyMmMxZWQ1%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D5acaa7605694c4458e2884fa7678684e)