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/sqiimaimport "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