🐣

日本の祝日一覧を返す API を作った

2 min read

なぜ作ったのか

日本の祝日一覧を返す API やライブラリは他にもありますが、次のような理由から自分で作ることにしました。

  • 祝日名の英語表記を取得できない
  • 振替休日が何の祝日の振替なのかわからない
  • 「休日(祝日扱い)」など一部の祝日名が不適切

それっぽい理由を並べましたが、GitHub Actions を使用して何かしたかったのが大きいです。そしてこの API を作るのが目的ではなく、途中まで作って放置している Go のパッケージ を作るのを目的で作りました。

https://github.com/kenkyu392/go-holidays

祝日判定(前/次/日付)までは作ってあるので、気になった人は使ってみてください。ある程度完成したらちゃんと別で記事を書きます。

使い方

API は GitHub Pages で公開しているので、URL にアクセスすることで使用できます。

https://github.com/kenkyu392/holidays-jp

API

API では 日付日時(ISO 8601)Unix Time 形式の JSON を提供しています。どの形式の JSON にも同じエンベロープが使用されています。

{
  "holidays": [
    <ITEM>...
  ]
}

日付形式の JSON

curl https://kenkyu392.github.io/holidays-jp/v1/date.json
{
  "date": "1955-01-01",
  "i18n": {
    "en-US": "New Year’s Day",
    "ja-JP": "元日"
  }
}

日時形式(ISO 8601)の JSON

curl https://kenkyu392.github.io/holidays-jp/v1/datetime.json
{
  "date": "1955-01-01T00:00:00+09:00",
  "i18n": {
    "en-US": "New Year’s Day",
    "ja-JP": "元日"
  }
}

Unix Time 形式の JSON

curl https://kenkyu392.github.io/holidays-jp/v1/unixtime.json
{
  "date": -473418000,
  "i18n": {
    "en-US": "New Year’s Day",
    "ja-JP": "元日"
  }
}

年ごとの JSON

/v1/<year>/<format>.json にアクセスすれば、年ごとのデータを取得できます。

生成方法

この API は GitHub Actions で 内閣府 が公開している CSV を wget でダウンロードし、Python で書いたスクリプトで祝日名の修正や英語表記を追加した JSON を書き出し、変更があればリポジトリにコミットしています。GitHub Actions で 行っていることは、実際にファイルを見ると分かりやすいと思います。

https://github.com/kenkyu392/holidays-jp/blob/main/.github/workflows/main.yml

まとめ

N 番煎じのものですが、たぶん他には無いデータの提供は出来ているかなと思うので、良ければ使ってみてください。
機能の追加やご指摘などコントリビュートもお待ちしてます。

https://github.com/kenkyu392/holidays-jp

Discussion

ログインするとコメントできます