API 設計書 システム名 サブシステム名称 作成者 作成日 更新者 更新日
#REF! #REF! フェンリル 栗原 2025/5/26
概要 対象のサービスレポートの共有履歴を一覧で取得する
API名 ServiceReport共有履歴一覧取得 URL /service-reports/{serviceReportId}/shared-tokens 種別 参照 提供方法 GET 呼び元
リクエスト(Header) NO 階層 項目名 項目 データ型 サイズ 形式 必須 備考 1 1 認可 authorization string - - ◯ prefix: "Bearer "
リクエスト(Parameter) タイプ path NO 階層 項目名 項目 データ型 サイズ 形式 必須 備考 1 1 サービスレポートID serviceReportId integer 10 - ◯
レスポンス タイプ application/json HTTPステータス 200:OK NO 階層 項目名 項目 データ型 サイズ 形式 必須 備考 1 1 共有履歴一覧 sharedTokens array - - ◯ 2 2 共有履歴 - object - - - 3 3 共有用トークン uuid string - uuid ◯ 4 3 共有先メールアドレス email string - email - 5 3 共有開始日時 startedAt string - RFC3339 - 6 3 共有開始者ID starterId integer - - - 7 3 共有開始者名 starterName string - - - 8 3 有効期限日時 expiredAt string - RFC3339 ◯ 9 3 共有停止者ID stopperId integer - - - 10 3 共有停止者名 stopperName string - - - 11 3 共有停止日時 stoppedAt string - RFC3339 -
HTTPステータス 400系 / 500系:異常終了 NO 階層 項目名 項目 データ型 サイズ 形式 必須 備考 1 1 エラー種別 type string - - ◯ 2 1 エラータイトル title string - - ◯ 3 1 エラー一覧 errors array - - ◯ 4 2 エラーコード errorCode string - - ◯ 5 2 メッセージ message string - - ◯ 6 2 エラーパラメーター名 name string - - - 7 2 バリデーション validator string - - - 8 2 パラメーター param string - - -
入出力サンプル
1. リクエスト
Body
2. レスポンス
2-1. 正常終了時
Status 200
Body "{
""sharedTokens"": [
{
""uuid"": ""0123-4567-8910"",
""email"": ""test@example.com"",
""startedAt"": ""2025-05-26T01:54:21.547Z"",
""starterId"": 1,
""starterName"": ""テストユーザA"",
""expiredAt"": ""2025-08-26T01:54:21.547Z"",
""stopperId"": null,
""stopperName"": null,
""stoppedAt"": null
},
{
""uuid"": ""abcd-efgh-ijkl"",
""email"": null
""startedAt"": ""2025-05-26T01:54:21.547Z"",
""starterId"": 2,
""starterName"": ""テストユーザB"",
""expiredAt"": ""2025-08-26T01:54:21.547Z"",
""stopperId"": 3,
""stopperName"": ""テストユーザC"",
""stoppedAt"": ""2025-07-26T01:54:21.547Z""
},
{
""uuid"": ""mnop-qrst-uvwx"",
""email"": null
""startedAt"": ""2025-05-26T01:54:21.547Z"",
""starterId"": 4,
""starterName"": ""テストユーザD"",
""expiredAt"": ""2025-08-26T01:54:21.547Z"",
""stopperId"": null,
""stopperName"": null,
""stoppedAt"": ""2025-07-26T01:54:21.547Z""
},
]
}"
2-2. バリデーションエラー時
Status 400
Body "{
""type"": ""https://webapi.sapli.fdev2.net/#/components/responses/InvalidParameter"",
""title"": ""Invalid Parameter"",
""errors"": [
{
""errorCode"": ""E400-1"",
""message"": ""hogehoge is a required field"",
""name"": ""string"",
""validator"": ""required"",
""namespace"": ""string""
}
]
}"
2-3. 想定外のエラー時
Status 500
Body "{
""type"": ""https://webapi.sapli.fdev2.net/#/components/responses/InternalServerError"",
""title"": ""Internal Server Error"",
""errors"": [
{
""errorCode"": ""E500-1"",
""message"": ""internal server error""
}
]
}"
対象テーブル・外部API
▼ テーブル ▼ 外部API 対象DB 対象テーブル 参照 作成 更新 削除 種別 API SAPLiDB サービスレポートの共有用トークン ◯ ◯ SAPLiDB ユーザー ◯ ※共通処理にてアクセスするものを除く
処理概要記述
要件: 凡例 1. 対象のサービスレポートの共有履歴を取得する パラメータの接頭辞 2. 古野電気様の社用アドレスを持つユーザのみが実行可能 ? クエリ、パスのパラメータ $ RequestBodyのパラメータ @ セッションのデータ 1. パラメータのバリデーション パラメータ serviceReportId 必須 / 数値 / サービスレポートの存在確認 (共通処理) sharedToken 必須 / 文字列 2. Context から以下を取得 パラメータ Key Value UserKey ログインユーザー情報 LangKey 言語コード 3. 実行ユーザの権限検証 2. で取得したログインユーザ情報のメールアドレスのドメインが「@furuno.co.jp」ではない場合、以下のエラーを返却する エラー 403 E403-4 Require Furuno Permission ※新規追加 4. 共有対象となるサービスレポートの取得 4-1. サービスレポートの共有用トークンテーブルからレコードを取得 CRUD READ テーブル サービスレポートの共有用トークン srst service_report_shared_tokens 結合テーブル ユーザー start_u users 結合条件 srst.共有開始者ID start_u.ID LEFT JOIN 結合テーブル ユーザー stop_u users 結合条件 srst.共有停止者ID stop_u.ID LEFT JOIN 値 srst.UUID srst.共有先メールアドレス srst.共有日時 AS 共有開始日時 srst.共有開始者ID start_u.名前 AS 共有開始者名 srst.共有開始日時 "CASE で条件に応じて参照内容を変える
・srst.共有開始日時が NULL ではない場合、 srst.共有日時の 90 日後参照 ・srst.共有開始日時 + INTERVAL '90 days' ・srst.共有開始日時が NULL の場合、NULL 参照" AS 有効期限日時
srst.共有停止者ID stop_u.名前 AS 共有停止者名 srst.削除日時 AS 共有停止日時 条件 srst.UUID ?.共有用トークン 完全一致 srst.サービスレポートID ?.サービスレポートID 完全一致 順序 srst.登録日時 降順 クエリ実行失敗時、エラーを返却する エラー 500 E500-1 InternalServerError 5. APIレスポンスを返却する(正常終了) ステータス 200 OK ボディ 共有履歴[].トークン 4-1.取得結果[].UUID 共有履歴[].共有先メールアドレス 4-1.取得結果[].共有先メールアドレス 共有履歴[].共有開始日時 4-1.取得結果[].共有開始日時 共有履歴[].共有開始者ID 4-1.取得結果[].共有開始者ID 共有履歴[].共有開始者名 4-1.取得結果[].共有開始者名 共有履歴[].有効期限日時 4-1.取得結果[].有効期限日時 共有履歴[].共有停止者ID 4-1.取得結果[].共有停止者ID 共有履歴[].共有停止者名 4-1.取得結果[].共有停止者名 共有履歴[].共有停止日時 4-1.取得結果[].共有停止日時