Real World HTTP 第2版の9章を読んだ
の続編
Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術
を買ったマスタカです
10章 クライアント視点で見るRESTful API
を読んだので新しく知ったことをまとめる
この章はGolangでコードを実際に書く話
サンプルだけどGitHub用のアプリを作るので勉強になった
・go get
パッケージ管理
~/go 配下にbin等が置かれる
・OAuth2
URLを取得して
URLを開いて
リダイレクトして
トークン交換用コードを取得して
交換用アクセスコードを使ってOAuth2からアクセストークンを取得する
・配列
https://qiita.com/k-penguin-sato/items/daad9986d6c42bdcde90
1 |
[]string{"user:email", "gist"} |
・channel
https://hori-ryota.com/blog/golang-channel-pattern/
1 2 3 4 5 6 7 8 9 10 |
#capacityなしの定義 make(chan string) #データの代入 code <- "aaa" #データの取得 <- code |
・GitHubのサンプルコード
GitHub AppsじゃなくてOAuth Appsなので注意
・パーミッションエラー
途中までGitHub Appsでやると大失態をしていて以下のエラーが出た
これは、 GitHub上の Settings -> Developer settings -> GitHub Apps -> Permissions & events
からパーミッションを与える必要がある
1 |
{"message":"Resource not accessible by integration","documentation_url":"https://docs.github.com/rest/reference/users#list-email-addresses-for-the-authenticated-user"} |
・Struct型
jsonパース用のStruct型
Structの説明
https://qiita.com/k-penguin-sato/items/62dfe0f93f56e4bf9157
パーサーの説明
https://web-technical.hatenablog.com/entry/2018/02/23/152023
1 2 3 4 5 6 7 8 |
#誤り type GistResult struct { Url string `json: "html_url"` } #以下が正しい。これ30分無駄にした type GistResult struct { Url string `json:"html_url"` } |
GitHubのAPI触ったことなかったので結構楽しかったです
まだまだ続くよ