Chapter 18

  Qiita APIを使う準備

heyhey1028
heyhey1028
2023.02.09に更新

まず Flutter での開発を始める前に、Qiita API を使うための準備と確認を行います。

アクセストークンの取得

まず Qiita API を使うためのアクセストークンを取得しましょう。

アクセストークンの取得方法
  1. 右上のご自身のアイコンをタップして「設定」を選択します。

  2. 「アプリケーション」を選択し、「新しいアクセストークンを発行する」をタップします。

  3. アクセストークンの名前を入力、スコープは「read_qiita」を選択し、「発行する」をタップします。

  4. アクセストークンが表示されるので、コピーしておきましょう。

API の確認

今回はこちらの投稿一覧を取得する API を使用します。

https://qiita.com/api/v2/docs#get-apiv2items

呼び出すエンドポイントは以下になります。

[GET] https://qiita.com/api/v2/items

リクエストパラメータの確認

リクエスト時に使えるオプションも確認しておきましょう。特に今回は任意のキーワードで検索を行う為、queryオプションを使うことになります。

オプション名 説明
page ページ番号
per_page 1 ページあたりに含まれる要素数
query 検索クエリ

オプションを指定したエンドポイントは以下のような形になります

https://qiita.com/api/v2/items?page=1&per_page=20&query=qiita+user%3AQiita

queryでは以下のようなオプションを使うことができます

オプション名 説明
title タイトルに指定の文字列を含む title:2015
body 本文に指定の文字列を含む body:Qiita
code コードに指定の文字列を含む code:Ruby
tag 指定のタグを持つ tag:Ruby
user 指定のユーザー user:sampleuser
-tag 指定のタグを持たない -tag:Ruby
stocks ストック件数 stocks:>3
created 作成日 created:>2015-10-09
updated 更新日 updated:>2015-10

レスポンスの確認

それでは API を呼び出した際に返ってくるレスポンスを確認しておきましょう。

レスポンス
[
  {
    "rendered_body": "<h1>Example</h1>",
    "body": "# Example",
    "coediting": false,
    "comments_count": 100,
    "created_at": "2000-01-01T00:00:00+00:00",
    "group": {
      "created_at": "2000-01-01T00:00:00+00:00",
      "description": "This group is for developers.",
      "name": "Dev",
      "private": false,
      "updated_at": "2000-01-01T00:00:00+00:00",
      "url_name": "dev"
    },
    "id": "c686397e4a0f4f11683d",
    "likes_count": 100,
    "private": false,
    "reactions_count": 100,
    "stocks_count": 100,
    "tags": [
      {
        "name": "Ruby",
        "versions": ["0.0.1"]
      }
    ],
    "title": "Example title",
    "updated_at": "2000-01-01T00:00:00+00:00",
    "url": "https://qiita.com/Qiita/items/c686397e4a0f4f11683d",
    "user": {
      "description": "Hello, world.",
      "facebook_id": "qiita",
      "followees_count": 100,
      "followers_count": 200,
      "github_login_name": "qiitan",
      "id": "qiita",
      "items_count": 300,
      "linkedin_id": "qiita",
      "location": "Tokyo, Japan",
      "name": "Qiita キータ",
      "organization": "Qiita Inc.",
      "permanent_id": 1,
      "profile_image_url": "https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/88/ccf90b557a406157dbb9d2d7e543dae384dbb561/large.png?1575443439",
      "team_only": false,
      "twitter_screen_name": "qiita",
      "website_url": "https://qiita.com"
    },
    "page_views_count": 100,
    "team_membership": {
      "name": "Qiita キータ"
    }
  }
]

後ほどこのレスポンスから必要な情報を取り出し、モデルに格納していきます。