golang

go の構造体の cross field validation

はじめに goccy/go-yaml とgo-playground/validator を使って構造体のフィールド間の validation をする方法をまとめます。 github.com

go の middleware で status code を取得する

はじめに go の net/http の middleware 内で status code を取得する方法をまとめます。 go の ResponseWriter という interface を status code 断面で深掘りするお話となります。 golang.org go の middleware で status code を取得する go の net/http …

go の net/http の middleware として rs/zerolog を使う

はじめに go の net/http の middleware として rs/zerolog を使う方法をまとめます。 rs/zerolog は構造化されたログを柔軟なフォーマットで高速に吐き出すことができる Logger です。 github.com

go の middleware を束ねて http.Handler を返す

はじめに Goで始めるMiddlewareの通り、go の HTTP Server で middleware を通す場合、入れ子を何回も書く必要があって可読性が落ちてしまいがちです。 記事の中で記載されていますが justinas/aliceを利用するとこで middleware をスタックし http.Handler …

spf13/cobra で HTTP Client を作成する

はじめに OpenAPI 3.0 の yaml ファイルをベースに CLI を自動生成するにあたり spf13/cobra を利用しようと思っています。 今回は spf13/cobra の復習をかねて環境構築と HTTP Client を作成してみます。

goccy/go-yaml で yaml の decode/encode

goccy/go-yamlというライブラリを使って yaml の decode/encode を行ってみます。 今回は後に openAPI の yaml ファイルを扱うことを想定し anchor/alias を利用したyamlファイルを分割した読み込みと、anchor/aliasを解決した後のyamlファイルの書き出しを…

go で algorithm : map/reduce/filter

はじめに go で競プロを始める前の肩慣らしとして基本的なデータ構造、アルゴリズムを復習します。 今回は go でシンプルな map/reduce/filter を実装します。 github.com

go で algorithm : FizzBuzz

はじめに 諸事情で暇になったので atcoder でも始めようかと思いましたが、まずは有名アルゴリズムを身につけていこうかと思います。 アルゴリズムかどうかはわかりませんが、まずは go で FizzBuzz とテストを書きます。 github.com go で FizzBuzz 0~100 …

go で WebAuthn する(Registration編)

はじめに go で WebAuthn します。 12月初旬にはおっしゃ実装したろ!という気持ちがありましたが時の流れとは恐ろしいもので以下の go で実装された WebAuthn の example の実装を読んで 2020年へ気持ちを高めていこう。という Go3 Advent Calendar 2019の2…

go でjson をパースする(構造体あり、なしパターン)

はじめに go でjson をパースする方法をまとめます。 構造体を使うパターンとbuger/jsonparser を利用して構造体を使わないパターンを書きます。 github.com go でjson をパースする 個人的には構造体を書けばいいと思ってますが、めんどくさいなぁと思うこ…

gorilla/websocket で異なるOrgin間の Error during WebSocket handshake: Unexpected response code: 403 を回避する

gorilla/websocket で異なるOrgin間の Error during WebSocket handshake: Unexpected response code: 403 を回避する

go で暗号化:SHA2 でチェックサムの計算と検証

golang SHA2 でパスワードのハッシュ化と検証

go で暗号化:md5 でチェックサムの計算と検証

golang crypto/md5 でパスワードのハッシュ化と検証

go で暗号化:bcrypt でパスワードのハッシュ化と検証

golang.org/x/crypto/bcrypt でパスワードのハッシュ化と検証

golang の struct と method

golang の struct と method

SORACOM Endorseの認証の仕組みを理解する

はじめに SORACOM Endorseを利用してSIMの認証を外部サーバーの認証と連携するでもアプリケーションを作成し、各ノードの役割についてまとめます。 Endorseは SIMごとにユニークかつ改ざん検知可能なトークンの払い出しを受けることができるサービスです。 …

Raspberry PiからSORACOM Beamに温度データを送る

はじめに 先日の記事でSORACOMとAWS間のプライベートネットワーク接続をまとめました。 今回はRaspberry Piでセンサからデータを取得し、ソラコムへ送信する部分をまとめます。 デバイス側の実装を極力シンプルに保つため、SORACOMのメタデータサービスに必…