頑張っているつもりのブログ

幅広くそれっぽい技術に関することを述べていきます

Goでjsonファイルを読み込んでHTTPで表示する

簡単にjsonファイルをHTTPで読み込めるものを実装しました。Goで。

背景

開発において、HTTP APIを実装してそのクライアントを実装するという流れがあると思います。 APIが返すjsonファイル(モック)は出来たがまだAPIの実装が終わっていない時にクライアントの実装に着手したい場合、jsonファイルを読み込んで実装しなきゃ行けなかったりすると思います。 その結果、本番では使わないファイルを読み込む処理を余計に書かなきゃいけないので若干面倒です。

そんなときにjsonファイルを読み込んでHTTP APIとして動かし、簡単にモックを使ってクライアントの実装ができるようにするためにrimeというものを実装しました。

実装

GitHub - wataru0225/rime: Rime is simple json server.

使い方は非常にシンプルで、jsonファイルが格納されているディレクトリに rime コマンドを実行するだけ。

$ tree samples
samples
├── carts
│   └── item.json
├── user.json
└── users
    ├── item.json
    └── post.json

2 directories, 4 files
$ rime
2018/01/26 21:35:32 http://localhost:8080
2018/01/26 21:35:32 See browse -> http://localhost:8080/samples/carts/item.json
2018/01/26 21:35:32 See browse -> http://localhost:8080/samples/user.json
2018/01/26 21:35:32 See browse -> http://localhost:8080/samples/users/item.json
2018/01/26 21:35:32 See browse -> http://localhost:8080/samples/users/post.json

.json ファイルだけを確認して、そのファイルパスも含めてURLとしてjsonを扱ってくれます。なので、 .git ディレクトリなどがあったとしても対象外になるので、気にせず使うことができます。

オプション

ポートがデフォルトで 8080 を使ってるのですが、クライアントが 8080 を使う場合、被ってしまうのでポートが指定できるオプションをつけてあります。

$ rime --port 9000
2018/01/26 21:56:49 http://localhost:9000
...

まとめ

標準ライブラリしか使ってないし、コード量少ないのでシンプルにできた。 ただバージョン 0.0.1からスタートしてしまったのは、公開している。(今から1.0.0に変更できるけど、あえてしない。) ちなみに今は0.0.2。