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.取得結果[].共有停止日時

トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS