## 経緯
諸事情で[[Postman]]が使えなくなったので[[APIクライアントツール]]の代替が必要... だが
- [[Neovim]]で使える要求を満たすツールがない
- ターミナルで使える要求を満たすツールがない
というところで困っていたところ、[[Bruno]]を知ったので。
## インストール
[[GitHub]]のREADMEから。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<p class="link-card-title">GitHub - usebruno/bruno: Opensource IDE For Exploring and Testing Api's (lightweight alternative to postman/insomnia)</p>
<p class="link-card-description"></p>
</div>
<img src="https://opengraph.githubassets.com/b7bedba1546c43e0ff2208c37fde6709a286340bfb7bb9ab22b3c843be96b773/usebruno/bruno" class="link-card-image" />
</div>
<a href="https://github.com/usebruno/bruno"></a>
</div>
[[Scoop]]を使う。
```console
scoop install bruno
```
1.6.1をインストール。
## リポジトリの作成
[[Bruno]]はデータを[[Git]]管理すること前提なので、リポジトリを作っておく。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<p class="link-card-title">tadashi-aikawa/bruno-collections</p>
<p class="link-card-description">Contribute to tadashi-aikawa/bruno-collections development by creating an account on GitHub.</p>
</div>
<img src="https://opengraph.githubassets.com/4d7da3afc2bda83210920b8d47324e4a898b14b6e416b39c0943d985bdcb9bd8/tadashi-aikawa/bruno-collections" class="link-card-image" />
</div>
<a href="https://github.com/tadashi-aikawa/bruno-collections"></a>
</div>
このリポジトリ配下に複数のコレクションを配置していく。
## コレクションの作成
まずはコレクションを作ってみる。
![[Pasted image 20240114212623.png]]
[[Slack]]に関する[[Neovimプラグイン]]を作りたいとちょうど思っていたので[[Slack]]にする。
![[Pasted image 20240114213117.png]]
Locationは先ほど作成したリポジトリのルート。
あとは[[Postman]]と同じノリで作っていく。大体同じような操作でOK。よくできたクローンゲームみたいな感じ。
## ファイルの中身
[[Postman]]との違いは、ファイルが本体であるということ。中身を見てみる。
```console
$ tree
.
├── bruno.json
├── environments
│ └── dev.bru
└── メッセージ検索.bru
```
### bruno.json
コレクションの情報が記載されている。
```json
{
"version": "1",
"name": "Slack",
"type": "collection"
}
```
### environments/dev.bru
`.bru`ファイルという独自形式。環境ごとに1ファイル。
```bru
vars {
SLACK: https://slack.com/api
}
vars:secret [
slack_oauth_token
]
```
[[GUI]]では以下の部分に該当する。`slack_oauth_token`は`Secret`にチェックがついているのでファイルに値は記録されていなそう。
![[2024-01-14-22-03-35.webp]]
### メッセージ検索.bru
`.bru`ファイルという独自形式。リクエストごとに1ファイル。
```bru
meta {
name: メッセージ検索
type: http
seq: 1
}
get {
url: {{SLACK}}/search.messages?query=Obsidian&sort=timestamp
body: none
auth: none
}
query {
query: Obsidian
sort: timestamp
}
```
[[GUI]]では以下の部分に該当する。`{{SLACK}}`は環境設定ファイルの`SLACK`に紐づく値。つまりここでは `https://slack.com/api` となる。
![[2024-01-14-22-08-40.webp]]
## 設定
バージョン管理の対象外だが、設定も少し変更。
![[2024-01-14-22-11-49.webp|frame]]
*テーマはダークに*
![[2024-01-14-22-12-25.webp|frame]]
*フォントはCascadia Code Nerd Font*
## コミット
普通に[[Git]]でコミットし、[[GitHub]]にpush。