API の仕様で、サービスの境界を守らせる
これまで別の機能のデータベースを直接読む実装が入り、機能どうしが絡み合う。レビューのたびに指摘する。
AI を組み込むとサービスごとにデータベースを分け、ほかのサービスとは公開 API の仕様(OpenAPI)だけでつなぐ。各サービスは、ほかのサービスのデータベースへの接続先も認証情報も持たないので、境界を越える実装は書いても動かない。
境界を越える実装は、動かない
# API の仕様(勤怠サービスの公開分)GET /attendance/monthly-summaryresponse: MonthlySummary # 仕様にない項目は返らない# 呼び出す側(請求サービス)+ const s = await attendance.getMonthlySummary(staffId, month)// 勤怠のデータベースへの接続先は持たない
