文章書き散らしサービス「しずかなインターネット」のAPIをcURLでコールしてみた

2023.11.15

ども、大瀧です。 Zennなど個性的なWebサービスを生み出してきたcatnoseさんの新作、文章書き散らしサービス「しずかなインターネット」が公開されました。本ブログではしずかなインターネットのAPIをコマンドラインツールのcURLから呼んでみた様子をご紹介します。

しずかなインターネットのAPI

しずかなインターネットはミニマム指向な日記・エッセイ向けのWebサービスです。APIはスポンサーと呼ばれる有償プランで利用できます。API機能は現時点でベータ版なので、本記事で紹介する方法も変更される可能性があることを留意してください。APIの呼び出し方は以下のGitHubリポジトリで案内されています。

APIドキュメントは以下です。現時点では、投稿した記事の一覧取得と記事の詳細情報取得の2つのAPIがあります。

呼び出しに必要なAPIキーは、スポンサーの課金設定を完了するとスポンサー限定メニューに表示される[参照系API] - [APIキー]ボタンで取得できます。

動作確認

では、cURLで呼び出してみます。まずは記事の一覧取得(/posts)から。

% curl -s -H "Authorization: Bearer sk-XXXXXXXXXXXX" https://sizu.me/api/v1/posts | jq
{
  "posts": [
    {
      "slug": "68h4dd2srv4h",
      "title": "プライベート記事のテスト",
      "bodyCharacterCount": 14,
      "visibility": "MYSELF",
      "tags": [
        "思うところ"
      ],
      "createdAt": "2023-11-15T11:07:33.213Z",
      "updatedAt": "2023-11-15T11:07:56.695Z"
    },
    {
      "slug": "978wbtdtx4n0",
      "title": "公開記事のテスト",
      "bodyCharacterCount": 23,
      "visibility": "ANYONE",
      "tags": [
        "テスト"
      ],
      "createdAt": "2023-11-15T11:06:22.447Z",
      "updatedAt": "2023-11-15T11:07:21.802Z"
    }
  ],
  "pagination": {
    "currentPage": 1,
    "nextPage": null,
    "prevPage": null,
    "perPage": 20,
    "sort": "created",
    "direction": "desc"
  }
}

記事の一覧には記事のタイトルやタグなどメタデータが含まれ、記事本文はレスポンスには含まれません。記事IDにあたるslugが含まれていますので、これを使って記事の詳細取得(/posts/{slug})を呼んでみます。

% curl -s -H "Authorization: Bearer sk-XXXXXXXXXXXX"  https://sizu.me/api/v1/posts/978wbtdtx4n0 | jq
{
  "post": {
    "slug": "978wbtdtx4n0",
    "title": "公開記事のテスト",
    "bodyCharacterCount": 23,
    "visibility": "ANYONE",
    "tags": [
      "テスト"
    ],
    "createdAt": "2023-11-15T11:06:22.447Z",
    "updatedAt": "2023-11-15T11:07:21.802Z",
    "bodyHtml": "<p>いろはにほへと</p><h2>H2はこんな感じ</h2><p>本文がぶら下がる</p><p></p>",
    "bodyMarkdown": "いろはにほへと\n\n## H2はこんな感じ\n\n本文がぶら下がる"
  }
}

記事の詳細には本文が含まれていて、原稿データにあたるMarkdownと表示データにあたるHTMLがそれぞれ含まれていますね。

まとめ

しずかなインターネットのAPIをコマンドラインツールのcURLから呼んでみました。シンプルなJSON APIで便利に利用できそうですね。