2021-01-01から1年間の記事一覧

【Golang】Goa v3でAPIキー認証(APIKyeAuth)を設定する

経緯 GoaのAPIキー認証(APIKeyAuth)の実装例はJWT認証などと比べると数が非常に少なく、さらにv2から仕様が大きく変わっておりv3での具体的な実装例を見つけられなかったため、今回実装してみた例を紹介します。 参考にしたサイト ①goadesign/goa/blob/v3/ds…

【Golang】個々のチャットルーム(ウェブページ)毎で独立してWebSocket接続を管理する方法例

経緯 複数のチャットルームが存在するチャットアプリでWebSocketを使用するため、それぞれのルーム(ページ)毎にWebSocketを管理する必要がありました。そこで、セッション管理の仕組みを応用して、各ルームのIDとルームのインスタンスとのマップとしてメモリ…

【Golang】ExecuteTemplate関数で渡した値を、scriptタグ内で参照する方法

経緯 Goのhtml/templateパッケージのExecuteTemplate関数の第二引数に何らかの値を代入することで、描画するhtmlに値を渡すことができ、htmlのタグ内に展開する例がよく紹介されています。しかし、渡した値が配列やスライスの場合、scriptタグ内で参照する時…

【Golang】同一ページ内の複数のPOSTメソッドを選択的に処理する方法

経緯 一つのページ内で複数のPOST処理を選択的に実行したいと思ったものの、ハンドラ関数内での分岐をGETかPOSTかだけでswitchしており、どう処理するか迷いました。 解決法 html側の各input要素に異なるname属性を付け、Request.Methodで分岐後、さらにRequ…

【Golang】自前でマルチプレクサを設定している場合のWebSocketの実装

前提 標準ライブラリのみでの実装です。 WebSocketのパッケージはgorilla/websocketではなく、準標準ライブラリのgolang.org/x/net/WebSocketを使用しています。 一般的なWebSocketの実装方法 Goの準標準ライブラリでWebSocketを実装したサーバーを立てる際…