Postman の代替ツール Ain を触ってみる。

こんにちは k-jun です。今回は Postman のように API サーバーにリクエストを投げる Ain を試してみます。

https://github.com/jonaslu/ain

Postman との差別点は Cli で完結している点ですね。意外と便利で 設定ファイルに格納できれば、確認 URL として GitHub に収めることも可能になります。 他 Postman に似たツールとして paw、insomnia. も存在するようですね。知りませんでした...。

Install

$ go install github.com/jonaslu/ain/cmd/ain@latest

Run

ではでは、早速試してみます。

$ ain -b basic_template.ain

テンプレートを生成。中身を見てみます。

$ cat basic_template.ain
[Host]
http://localhost:${PORT}

[Headers]
Content-Type: application/json

# [Method]
# POST

# [Body]
# {
#    "some": "json"
# }

[Config]
Timeout=3

[Backend]
curl
# wget

[BackendOptions]
-sS # Makes curl suppress its progress bar in a pipe
# -q # Makes wget suppress its progress output

# Short help:
# Comments start with hash-sign (#) and are ignored.
# ${VARIABLES} are replaced with the .env-file or environment variable value
# $(executables.sh) are replaced with the output of that executable

うーむ... なんか横に長いですね...。toml 形式の設定方法は単発では見やすいと思いますが、複数 API を定義するのには冗長になりそうだなと言う印象を受けました。 これ複数定義して GitHub 管理してもどれを使うかわからなくなりそうですね...。

利用用途は Load Balancer ですが drill のほうが簡易的で好きでした...。Header の Content-Type とかも Postman であればよしなに判断して付与してくれますし...。

認証系統は以下のようにコマンドを利用できるのである程度やりやすそうですが、設定のわかりやすさとしては、自分の中では Drill の勝ちですね。

[Headers]
Authorization: Bearer $(bash -c "./get-login.sh | jq -r '.token'")

というか、これぐらいであれば Makefilecurl を列挙して実行したほうがマシな気がします。無駄なファイルが増えませんし。

それでは今回はこのへんで。