自鯖でmarkdownで書いていくブログ?をGoで作ろうとしてます
素直にHugo使えというツッコミは当然ありますが、Goの勉強という意味合いであえて自作で地雷を踏んでみようと
- 「どうせmarkdownで書くならせっかくならQiitaに今まで書いたやつもエントリとして載せたい」
- 「今後のQiita記事はWebhook使ってブログ側にエントリとして載せられるとして、既存の記事は引っ張れるのかな?」
とQiita APIを眺めてこんな感じになりました
これで自分の過去記事を引っ張ってきます
習作中なのでエラー処理ガバガバ、prettyPrint()は車輪の再発明の予感がするというアレなサンプルですが
main.go
package main;
import (
"fmt"
"bytes"
"encoding/json"
"net/http"
"io/ioutil"
"log"
)
func main() {
request, _ := http.NewRequest("GET", "https://qiita.com/api/v2/authenticated_user/items", nil)
request.Header.Set("Authorization", "Bearer 個人用アクセストークン")
client := new(http.Client)
response, err := client.Do(request)
if err != nil{
log.Fatal(err)
}
defer response.Body.Close()
contents, err := ioutil.ReadAll(response.Body)
if err != nil{
log.Fatal(err)
}
data, err := prettyPrint(contents)
fmt.Println(string(data))
}
func prettyPrint(b []byte) ([]byte, error){
var out bytes.Buffer
err := json.Indent(&out, b, "", "\t")
return out.Bytes(), err
}
これで
{
"id": "記事ID",
"url": "記事URL",
"title": "タイトル",
"body": "Markdownの記事データ",
"rendered_body": "HTMLに変換された記事データ",
"created_at": "作成日時",
"updated_at": "更新日時",
"tags": [
{"icon_url": "", "name": "タグ", "versions": []}
]
}
というところは引っぱれたので満足