【個人開発】「今日は何の日API」を公開しました。

# <a href="https://qiita.com/sooz32904010/items/73ca25be80dab76944f9">【重要】2022年9月30日(金)21:00〜23:59の期間にバージョン2.0へ移行します。10月1日(土)以降は以下の内容(バージョン1.0)は使えなくなります。詳しくはこちら。</a>
# 今日は何の日API リファレンス

「今日は何の日API」は3種のAPI(記念日API・MD販促API・誕生花API)の総称です。

3種ともシンプルな構造で、それぞれのリクエストURLの末尾に月日(mmdd形式、例えば1月1日なら0101)を加えてリクエストすることで、同日の情報(記念日・MD・誕生花)をJSON形式で返します。WEBでのマーケティング、広報、販促にご利用いただけます。

```python:リクエストの例

import datetime
import requests
from requests.packages.urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter


header = {'content-type': "Application/json"}
session = requests.Session()
retries = Retry(total=2,backoff_factor=1,status_forcelist=[500, 502, 503, 504])
session.mount("https://", HTTPAdapter(max_retries=retries))

today = datetime.date.today()
mmdd = today.strftime('%m%d')
url = "https://api.whatistoday.ml/v1/anniv/" + mmdd

r = session.get(url,headers=header,stream=True,timeout=(10.0, 30.0))
rj = r.json()


print(rj['anniv1'])

#2月14日なら"バレンタインデー"
#値がないパラメータは空文字""を返します

```

上記コードにある通り、リトライ(再試行)ありの設定を推奨しています。サーバが貧弱なので、いつか改善します。

メールアドレス等の登録は不要ですが、過度なリクエストに対しては、アクセス制限を施す可能性がございます。

以下は3種それぞれの説明です。

## 記念日API

特定の日付に対応する記念日を返すAPI。

祝日・祭日などの情報は含まれません。また例えば「ボージョレ解禁日(11月の第3木曜日)」のように、第○番目の○曜日などとカウントされる記念日も含まれないことにご注意ください。特定の日付に対応する記念日のみ、最大で5つ返します。

### リクエストURL

```

https://api.whatistoday.ml/v1/anniv/

```

### レスポンス サンプル

```

{
  "id": 316,
  "mmdd": "1111",
  "anniv1": "ポッキー&プリッツの日",
  "anniv2": "介護の日",
  "anniv3": "サッカーの日",
  "anniv4": "くつしたの日",
  "anniv5": "電池の日"
}

```

### レスポンスフィールド

![1649666564089-mmgLXII7NQ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625595/ac455af3-2f4f-837d-568d-352c81f9d482.jpeg)

## MD販促API

特定の日付に対応するMD(MerchanDising)を返すAPI。

MDカレンダーとして活用可能ですが、52週のカレンダーではないことにご注意ください。日曜や祝祭日の切れ目は明確ではありません。毎年使い回すことを想定しているので、年ごとの気候や時事の変化は考慮に入れない、ざっくりとした構成です。関東地方の比較的小規模なショッピングセンターを想定した内容です。

### リクエストURL

```

https://api.whatistoday.ml/v1/md/

```

### レスポンス サンプル

```

{
  "id": 316,
  "mmdd": "1111",
  "fashion1": "冬物(プロパー)",
  "fashion2": "",
  "life1": "クリスマス",
  "life2": "寒さ対策",
  "gift1": "クリスマスギフト",
  "gift2": "お歳暮",
  "food1": "冬メニュー",
  "food2": "クリスマスメニュー"
}

```

### レスポンスフィールド

![1649938231966-NsmCJCroU8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625595/5c025918-02d2-ff27-ce8d-6f2b6d4c710a.jpeg)

## 誕生花API

特定の日付に対応する誕生花とその花言葉を返すAPI。

### リクエストURL

```

https://api.whatistoday.ml/v1/birthflower/

```

### レスポンス サンプル

```

{
  "id": 316,
  "mmdd": "1111",
  "flower": "アジアンタム",
  "lang": "天真爛漫"
}

```

![1649666730947-dV3s6CM9Q6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625595/e24d16c5-5ead-2a49-a3d8-b58a4d20671e.jpeg)

## 【最後に】利用者へのお願い

強制ではありませんが、ご利用の際にはどちらか1つだけでもご協力いただければ幸いです。

### お願い1. リンク

ご利用のアカウントからnoteへのリンクをお願いいたします。直リンクでも<a href="https://note.com/sooz/n/n692eb655f4dd">powered by whatistodayAPI</a>でも、何でも結構です。
https://note.com/sooz/n/n692eb655f4dd

### お願い2. 投げ銭

noteの「気に入ったらサポート」よりお願いします。amazonのリストでも受け付ております。
https://www.amazon.co.jp/hz/wishlist/ls/2XR581SJNMC49/

本APIの性質上、最低でも1年間は運営するつもりです。とはいえ個人開発APIの命は儚いもので、利用者が少なすぎたり、来年分のサーバ代が賄えなければ、2年目以降はサービス終了する可能性がございます。逆に(開発者にとってはありがたいことですが)リクエストが増えすぎた場合は、スケールアップのために登録制や課金制への移行を検討する可能性もございます。

サービスの安定的な運用と成長のために、応援いただければ幸いです。

2022.4.15 「ヘリコプターの日」に sooz