Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@suin/esa-api

suin908MIT4.0.1TypeScript support: included

esa.io APIクライアント

esa

readme

@suin/esa-api

esa.io API のクライアントライブラリ。

特徴

  • すべてのエンドポイントに対応しています。
  • esa API の OpenAPI 仕様書から生成したクライアントライブラリをベースに一部拡張を加えたライブラリです。

インストール

yarn add @suin/esa-api
# or
npm install @suin/esa-api

使い方

基本的な用法:

import { createClient } from "@suin/esa-api";

const teamName = "your_team_name";

const client = createClient({
  token: process.env.ESA_TOKEN, // アクセストーン
});

{
  // 記事一覧を取得する
  const {
    data: { posts },
  } = await client.getPosts({ teamName });
}

{
  // 指定した記事を取得する
  const { data: post } = await client.getPost({ teamName, postNumber: 1 });
}

{
  // 記事を新規投稿する
  const { data: createdPost } = await client.createPost({
    teamName,
    post: {
      name: "hi!",
      body_md: "# Getting Started\n",
      tags: ["api", "dev"],
      category: "dev/2015/05/10",
      wip: false,
      message: "Add Getting Started section",
    },
  });
}

{
  // 指定した記事を編集する
  const { data: updatedPost } = await client.updatePost({
    teamName,
    postNumber: 1,
    updatePostBody: {
      post: {
        wip: false,
        message: "Ship it!",
      },
    },
  });
}

複雑なクエリの例:

import { createClient } from "@suin/esa-api";

const teamName = "your_team_name";

const client = createClient({
  token: process.env.ESA_TOKEN,
});

// 細かい条件を設定して記事一覧を取得する
const response = await client.getPosts({
  teamName,
  q: "wip:false",
  include: ["comments", "comments.stargazers", "stargazers"],
  sort: "updated",
  order: "desc",
  per_page: 100,
  page: 1,
});

// 結果からは様々な付随情報が得られます:
// 1. 記事一覧
const { posts } = response.data;
// 2. 利用制限
const { limit, remaining, reset } = response.ratelimit;
// 3. ページネーション
const { prev_page, next_page, page, per_page, max_per_page, total_count } =
  response.data;

API リファレンス

https://suin.github.io/esa-api/

changelog

4.0.1 (2023-09-20)

Bug Fixes

  • 🐛 利用者のtsconfigにnoUnusedLocalsがtrueのときコンパイルできない問題を解決しました。 (4bf7368)

4.0.0 (2021-04-23)

Features

  • 🎸 すべてのエンドポイントに対応しました (c10dc8c)

BREAKING CHANGES

  • 🧨 Clientは下位互換性がありません

@suin/esa-openapiを使い、クライアントライブラリを自動生成するようにしました。これにより、esa APIのすべてのエンドポイントに対応することとなりました。

3.2.0 (2021-03-24)

Features

  • 🎸 support myself property (3cf862d)

3.1.0 (2021-03-24)

Features

  • 🎸 export Member type (b987dc5)
  • 🎸 support GET /v1/teams/:team_name/members (b69aa08)
  • 🎸 support pagination in getMembers (cf335be)

3.0.2 (2020-06-22)

Bug Fixes

  • 🐛 remove console.log (5a2c072)

3.0.1 (2020-06-22)

Bug Fixes

  • 🐛 sample code bugs in README.md (fc07a08)

3.0.0 (2020-06-22)

Features

BREAKING CHANGES

  • 🧨 扱っているデータによって互換性がなくなりました。記事タイトルに#/を含む記事を扱っている場合、処理の結果が変わってくるはずです。

2.2.0 (2020-06-22)

Features

  • 🎸 support POST /v1/teams/:team_name/posts (a70acfd)

2.1.0 (2020-06-22)

Features

  • 🎸 support PATCH /v1/teams/:team_name/posts/:post_number (681b8ad)

2.0.0 (2020-06-19)

Features

  • 🎸 treat 404 error on getPost() as a non-error path (7f612fb)

BREAKING CHANGES

  • 🧨 getPost()の戻り値の型に下位互換性が無くなりました。

1.1.0 (2020-06-17)

Features

  • 🎸 support GET /v1/teams/:team_name/posts/:post_number (ac663a3)

1.0.0 (2020-06-17)

Features