はじめに
こんにちは、piyovateです🐣✨
今回は番外編として、これまで手動で管理していたホームページ上の「休日(休業日)」を、自動的に祝日APIと連携して更新する仕組みを作りました!祝日が毎年自動更新されるので、手間を省き運用が楽になりますよ✨
🎯 今回の目標
- 国民の祝日を外部APIから自動取得
- 手動で臨時休業日を追加可能な仕組みを維持
🌐 使用するAPI
今回使用したAPIはこちらです:
https://api.national-holidays.jp/
このAPIを利用することで、常に最新の祝日情報が自動で反映されます。
⚠️ ご利用の際は必ず利用規約をご確認ください。
⚙️ Step1:設定ファイルの修正
祝日APIのURLを設定します。年が変わっても自動で取得されるよう、JavaScriptで年を自動取得しています。
// raspi-config.js
const ENV_CONFIG = {
national_holidays_apiUrl: `https://api.national-holidays.jp/${new Date().getFullYear()}`,
holidays: [
'2021-07-21', // 例:創業日などの臨時休業日をここに追加
]
};
🔄 Step2:API連携処理の追加
以下のように、祝日を取得する関数を追加しました。
// env-status.js
async function fetchHolidays() {
const response = await fetch(ENV_CONFIG.national_holidays_apiUrl);
if (!response.ok) throw new Error('祝日データ取得失敗');
const holidays = await response.json();
return holidays.map(day => day.date);
}
(async function initializeHolidays() {
try {
const apiHolidays = await fetchHolidays();
// 手動設定日とAPI取得日のマージ
ENV_CONFIG.holidays = Array.from(new Set([...ENV_CONFIG.holidays, ...apiHolidays]));
console.log('祝日取得成功:', ENV_CONFIG.holidays);
} catch (err) {
console.error('祝日取得エラー:', err);
}
await updateComfortStatus();
})();
🚩 動作確認
これにより、
- 毎年の国民の祝日が自動で更新
- 手動指定した臨時休業日(創業日など)も設定可能
となります。
表示例:
休業日
これで管理も楽になりましたね!✨
📌 休日(休業日)の追加手順
ホームページ上に表示される「休業日」を追加する場合は、以下のファイルを修正します。
設定ファイルの場所
assets/js/raspi-config.js
変更方法
holidays: [
'2021-07-21', // 例:創業日と同様の形式で休業日を入力してください
// 臨時休業日をここに追加
]
- 国民の祝日はAPIにより自動取得のため対応は不要です。
🎉 完成!
今回は番外編として、自動化による効率化を実現しました。
次回もお楽しみに🐣✨