使うタイミングが来るか分かりませんが、QiitaのAPIが気になっていたので少し確認してみました。
今回は記事にしか触れていませんが、他のAPIはこちらに記載されています。
APIの利用には制限があるようなので、一旦そこだけ気をつけました。
・認証している状態ではユーザーごとに1時間に1000回まで、認証していない状態ではIPアドレスごとに1時間に60回までリクエストを受け付けます。
※今回は認証していない状態で利用しています。
Itemsの構成
リクエスト
https://qiita.com/api/v2/items?page=1&per_page=20&query=user:kiNako_aNko
今回はVSCodeのREST Clientを使っていますが、そのままブラウザで叩いても大丈夫です(だいぶ見づらいですが・・・)
※queryについては後述参照
レスポンス
レスポンスの構成は以下の通りです※さらにリストが持っている構成は割愛
KEY | 説明 |
---|---|
rendered_body | HTML形式の本文 |
body | Markdown形式の本文 |
coediting | 共同更新状態かどうか (Qiita Teamでのみ有効) |
comments_count | コメントの数 |
created_at | データが作成(公開?)された日時 |
group | Qiita Teamのグループ |
id | 記事の一意なID |
likes_count | 「いいね」の数 |
private | 限定共有状態かどうか (Qiita Teamでは無効) |
reactions_count | 絵文字リアクションの数(Qiita Teamでのみ有効) |
stocks_count | ストックされた数 |
tags | 記事に付いたタグ一覧 |
title | 記事のタイトル |
updated_at | 最後に更新された日時 |
url | 記事のURL |
user | ユーザー情報 |
page_views_count | 閲覧数 |
team_membership | Qiita Team のチームメンバー情報 |
organization_url_name | 記事のOrganization の url_name |
slide | スライドモードが有効かどうか |
こんな感じです(rendered_bodyとbodyは長いので割愛)
{
"rendered_body": "",
"body": "",
"coediting": false,
"comments_count": 0,
"created_at": "2024-03-18T07:03:51+09:00",
"group": null,
"id": "4a8734aff6ce5c061bf3",
"likes_count": 9,
"private": false,
"reactions_count": 0,
"stocks_count": 8,
"tags": [
],
"title": "重要なテストケースは確保しつつテスト工数を減らす方法",
"updated_at": "2024-03-18T07:03:51+09:00",
"url": "https://qiita.com/kiNako_aNko/items/4a8734aff6ce5c061bf3",
"user": {
},
"page_views_count": null,
"team_membership": null,
"organization_url_name": "crane-i",
"slide": false
}
閲覧数がnull・・・?
閲覧数を確認したい
認証が必要そうだったので、今回は諦めました。
今度トークン取得してリベンジします。
queryオプション
今回はuserしか使っていませんが、オプションは以下の通りです。
※複数指定したい場合は"+"で繋げる
オプション名 | 説明 | 使用例 |
---|---|---|
title | タイトルに指定の文字列を含む | title:記事情報 |
body | 本文に指定の文字列を含む | body:閲覧数 |
code | コードに指定の文字列を含む | code:json |
tag | 指定のタグを持つ | tag:API |
-tag | 指定のタグを持たない | -tag:API |
user | 指定のユーザー | user:kiNako_aNko |
stocks | ストック件数 | stocks:>100 |
created | 作成日 | created:>2024-03-24 |
updated | 更新日 | updated:>2024-03-24 |
さいごに
APIを使えば色々分析もできて面白そうなので、今後はきちんと認証してやってみようと思います。