Go言語でGitHub REST API を使ってリポジトリIDとリポジトリ名一覧を取得する方法
ども、k69 です。
めんどくさい作業を自動化するために、Go言語でツールを作るにはREST APIを使った処理が必須だと思い、HTTPクライアントとJSONの処理を調べてみた。
じゃ、「お試しでGitHub REST API を使って、リポジトリIDとリポジトリ一覧を取得してみよう!」と
ウニウニしたのがこの記事です。
対象読者
- Go言語でREST API操作をどうやるか知りたい人
- REST APIを使ってGitHubを操作したい人
前提条件
- Window端末
- Go言語の基礎知識がある人
- Gitコマンドの基礎知識がある人
手順
1. 事前準備
1-1. GitHubのパーソナルアクセストークンを取得する
※ 取得したパーソナルアクセストークンを使用するのでメモしておきましょう!
1-1-1. Settingsを押す。
1-1-2. Developer settings を押す。
1-1-3. Personal access tokens を押す。
1-1-4. Genarate new tokens を押す。
1-1-5. Token desucription を記入し、repo 選択を押す。
1-1-6. 画面下の Generate token を押す。
1-2. git clone する
ここにソースコードがあるので参考にしてください。
コマンド
cd C:\tmp
git clone https://github.com/keita69/qiita-go-github.git
2. ソースコードを一部修正する
qiita-go-github\src\gt\github-tool.go
にあるmain()メソッドの下記の部分を変更する。
修正箇所
// Pleaer change your data !
g_user := "CHANGE-ME" // あなたのGitHubのUserID
p_token := "CHANGE-ME" // 取得したパーソナルアクセストークン
3. コンパイルと実行
GOPATH を設定して、コンパイル(go install
※ go install だと、%GOPATH%\bin に実行ファイルを作成してくれるので便利
コンパイル
set GOPATH=C:\tmp\qiita-go-github
cd %GOPATH%
go install gt
%GOPATH%\bin\gt.exe
自分のGitHubのリポジトリIDとリポジトリ名が表示されます
実行結果(例)
Id=109214131 Name=go-animals
Id=111937536 Name=go-cli-cobra
Id=112084063 Name=go-cobra
Id=111267920 Name=go-unittest
Id=106984517 Name=helloworld-go
:
まとめ
go言語でREST APIを扱うことが簡単にできました。今回の記事ではGitHubを例に書きましたが、REST APIであれば他のサービスやアプリケーションとの連携に使えるのでかなり応用できそうです。
あと、余談ですが次世代APIとして「GraphQL」が来ているみたいなので、早く標準パッケージ化されてほしい('ω')ノ
参考URL
- golang JSON API クライアントサンプル
https://qiita.com/shin1x1/items/7fda7275d6ec0ccca029