SQiiMA
は Qiita API v2 を Go 言語(以下 Golang)で扱う際の JSON スキーマを元に Golang の構造体(struct type
)に起こしただけのシンプルなライブラリです。
Qiita API へのリクエストおよびレスポンスの JSON データを Marshal
/ Unmarshal
する際に import
して利用ください。
- Qiita API v2 の JSON スキーマ定義 @ Qiita 公式
- sqiima の構造体一覧
$ go get github.com/Qithub-BOT/sqiima
import "github.com/Qithub-BOT/sqiima/sqiima"
// Qiita API にリクエストした結果を取得する
// (/api/v2/items エンドポイントは新着記事の JSON オブジェクトを配列で返します)
rawJSON := doSomethingToRequest("/api/v2/items")
// Go の初期化された空のオブジェクト作成
// Items は Item のスライス(可変長配列)です =`[]Item`
items := new(sqiima.Items)
// 空のオブジェクトに生 JSON を割り当て (JSON decode-ish)
if err := json.Unmarshal(rawJSON, item); err != nil {
log.Fatalf("error to parse JSON: %v", err)
}
// 新着 Qiita 記事一覧のタイトル出力
for _, item := range *items {
fmt.Println(item.Title)
}
- 新着 Qiita 記事 20 件を取得して一覧を表示するサンプル
- 指定した記事 ID を取得して記事情報を表示するサンプル
JSON 側オブジェクト名 | Go 側構造体名(型名) | 説明 |
---|---|---|
"item" | Item | ユーザからの投稿を表します。 |
"tag" | Tag | 記事に付けられた個々のタグを表します。 |
"like" | Like | 記事につけられた「LGTM!」を表します。Qiita Team の LGTM API は2020年11月4日より廃止となりました。今後は絵文字リアクション API をご利用ください。 |
"user" | User | Qiita 上のユーザを表します。 |
"authenticated_user" | AuthenticatedUser | 現在のアクセストークンで認証中のユーザを表します。通常のユーザ情報よりも詳細な情報を含んでいます。 |
"access_token" | AccessToken | Qiita API v2 で認証・認可を行うためのアクセストークンを表します。 |
"comment" | Comment | 記事やプロジェクトに付けられたコメントを表します。プロジェクトへのコメントは Qiita Team でのみ有効です。 |
JSON 側オブジェクト名 | Go 側構造体名(型名) | 説明 |
---|---|---|
"team" | Team | Qiita Team 上で所属しているチームを表します。 |
"group" | Group | Qiita Team のグループを表します。 |
"reaction" | Reaction | Qiita Team 上での絵文字リアクションを表します。 |
"template" | Template | 記事のひな形に利用できるテンプレートを表します。 |
"project" | Project | Qiita Team 上でのプロジェクトを表します。 |
"expanded_template" | ExpandedTemplate | テンプレートを保存する前に変数展開後の状態をプレビューできます。 |
"team_access_token" | TeamAccessToken | Qiita API v2 で認証・認可を行うためのチーム別アクセストークンを表します。 |
"tagging" | Tagging | 記事とタグとの関連を表します。 |
"remove_team_member" | RemoveTeamMember | 指定のユーザーをチームから離脱させます。自身とチームのオーナーはこの API では離脱させられません。 |
"team_invitation" | TeamInvitation | Qiita Teamでの招待中のメンバーを表します。管理者権限が必要です。 |
- このリポジトリは GitHub Codespaces に対応しています。
- MIT
- Copyright The SQiiMA Contributors