golang
grpcを使ったアプリケーションを作る時にヘルスチェックをどうしようかと思って色々調べたのでメモ。 grpcでヘルスチェックを行う場合、公式にかかれているGRPC Health Checking Protocolを使うと良さそうです。 https://github.com/grpc/grpc/blob/master/d…
go-playground/validatorを使って、空の値を許容するクエリパラメータのvalidationをしようとして微妙にハマったのでメモ。 go-playground/validatorのリポジトリは以下。 https://github.com/go-playground/validator go-playground/validatorを使う場合、…
modelのロジックが複数の種類のエラーを返す想定で出力を変えたいなーと思っていろいろ調べたのでメモ。 どうやったらシンプルにできるかなーと考えてたんですが、pkg/errorsを使う形に落ち着きました。 github.com だいたい以下のような感じで、独自のエラ…
echoでエンドポイントにmiddlewareをはさもうとしていろいろハマったのでメモ。 echoでルーティングする場合は以下のようにecho.EchoのGET、POSTであったり、Addだったりを呼ぶわけなんですが、それとは別に直接echo.RouterのAddを使ってルーティングしたり…
goでDB周りのテストをするときに、毎度テスト用のDBにデータを流し込んで終わったら削除する、みたいなことをしていたのだけれど、若干面倒だなーと思い始めたのでgo-sqlmockを使ってみました。 go-sqlmockはgo用のmockライブラリです。 github.com 公式のサ…
昨日「Web API: The Good Parts」を読んで、APIを実装する場合の基本的な部分をおさえてみようということでCORS対応について色々確認してみてます。 net/httpで実装するのであれば、該当するhandler内部でMethodのチェックをして、OPTIONSならそのまま返す、…
久しぶりにgoaで遊ぼうとしていて、開発環境をdockerで作ろうとしたら、ハマったのでメモ。 goaの使っているgo.uuidのbreaking changeが原因でシンプルにdep ensureで引っ張ってきても古いgo.uuidが取れてきてしまって、動かないのでGopkg.tomlで上書きする…
前に自分の作ったライブラリのパッケージマネージャーをglideからdepに変えました。特に理由があってやったというよりは、そろそろdepに慣れておいた良さそうぐらいのモチベーションです。 dep自体が他ツールからの移行を想定しているので移行は非常に楽でし…
今年のぼんやりとした目標で、何かしらの他人のプロダクトにプルリクを投げようと考えていたのですが、年始にgithub trendingに上がっていたプロダクトにノリでプルリク投げたら5分かからずmergeされてしまいました。 プルリクを投げたのは以下。 github.com…
自分でCLIのツールを作るときは大抵、cobraを使ってやるのですが、サブコマンドを必要としていなかったり、そこまで処理が多くない場合にcobraを使うのは面倒だったので、標準パッケージに含まれているflagを使ってみている。そんななかでflagでオプション無…
logstashを動かした時にどうやって監視しようと思うと、まぁほぼほぼx-packを使ってkibanaで監視すると思います。 monitoringに関してはx-packもただで使えますしね。 そんな中でkibanaを使わないで確認したいと思い至ったので、monitoring apiを叩くgo用ラ…
elasticsearchでanalyzerを試す際に毎回/_analyzeを叩いて検証するのもだんだん面倒臭くなってきたので、さっくり試すためのコマンドラインツールを作りました。 github.com とりあえず試せることを目指して作ったので機能はかなり少なく、analyze apiのfilt…
このところ、自分で使うようのコマンドラインツールを作っているのですが、テストが多くなってきたこととテストに他のソフトウェアを含んでいる影響で激烈にテストが遅くなってきていて若干不満だったのですが、特定のテストだけ実行する方法があったのでメ…
つい最近のGoogle I/Oでkotlinがandroidアプリ開発の公式言語に追加された影響か、大したこと書いてないですが意外にアクセスが来ていて嬉しい限りです。 とりあえず間違った情報は流さないようにしたいと思います。 今回は今までのandroid + kotlin押しとは…