REST API
GraphQL エンドポイント(POST /graphql)以外に提供している REST API の一覧です。
エンドポイント一覧
| メソッド | パス | 認証 | 概要 |
|---|---|---|---|
GET |
/.well-known/jwks.json |
不要 | JWT 検証用公開鍵(JWKS形式)を取得 |
POST |
/api/v1/DrivingReport/GenerateCallback |
APIキー | 運転日報生成コールバック |
POST |
/api/v1/UserAccount/BulkOperationCallback |
APIキー | ユーザーアカウント一括操作コールバック |
POST |
/api/v1/Mobile/BulkUpdateCallback |
APIキー | 移動局一括更新コールバック |
GET |
/health/ready |
不要 | ヘルスチェック(依存サービス含む) |
GET |
/health/live |
不要 | ヘルスチェック(サービス自身) |
GET /.well-known/jwks.json
JWT 検証用の公開鍵を JWKS 形式で返します。フロントエンドが JWT トークンを検証する際に使用します。
| 項目 | 内容 |
|---|---|
| 認証 | 不要 |
| データ取得元 | mloca-api |
レスポンス 200 OK
{
"keys": [
{
"alg": "RS256",
"kty": "RSA",
"use": "sig",
"kid": "...",
"n": "...",
"e": "AQAB"
}
]
}
POST /api/v1/DrivingReport/GenerateCallback
運転日報生成の完了コールバックを受け取ります。AWS SQS から呼び出される内部エンドポイントです。
| 項目 | 内容 |
|---|---|
| 認証 | APIキー(TASK_CALLBACK_API_KEY 環境変数) |
| 呼び出し元 | AWS Lambda(SQS トリガー) |
| データ書き込み先 | AWS DynamoDB / AWS S3 |
内部処理フロー
sequenceDiagram
participant L as AWS Lambda
participant R as /api/v1/DrivingReport/GenerateCallback
participant DB as AWS DynamoDB
participant S3 as AWS S3
L->>R: POST(DrivingReportsQuery)
R->>R: mloca-api / 外部サービスで運転日報を生成
R->>S3: 生成した PDF をアップロード
R->>DB: 処理結果を書き込み(completed=1, callback_result_status, callback_result_body)
R-->>L: 200 OK
フロントエンドは
fetchDrivingReportsStatusクエリで処理状況をポーリングします。
リクエストボディ
{
"date": "2024-01-15T00:00:00+09:00",
"drivers": [
{
"mobileId": "12345",
"employeeCode": "EMP001",
"employeeName": "山田太郎"
}
]
}
レスポンス 200 OK
{
"key": "s3-object-key",
"errorList": null
}
POST /api/v1/UserAccount/BulkOperationCallback
ユーザーアカウント一括操作の完了コールバックを受け取ります。AWS SQS から呼び出される内部エンドポイントです。
| 項目 | 内容 |
|---|---|
| 認証 | APIキー(TASK_CALLBACK_API_KEY 環境変数) |
| 呼び出し元 | AWS Lambda(SQS トリガー) |
| データ書き込み先 | mloca-api / AWS DynamoDB |
内部処理フロー
sequenceDiagram
participant L as AWS Lambda
participant R as /api/v1/UserAccount/BulkOperationCallback
participant M as mloca-api
participant DB as AWS DynamoDB
L->>R: POST([UserAccountInfo])
R->>M: create / update / delete を順次実行
R->>DB: 処理結果を書き込み(completed=1, callback_result_status, callback_result_body)
R-->>L: 200 OK(Status: "Success" / "Failure")
フロントエンドは
fetchBulkOperationUserAccountStatusクエリで処理状況をポーリングします。
リクエストボディ
[
{
"type": 0,
"userAccountInput": {
"loginId": "user001",
"password": "...",
"name": "山田太郎",
"isAdmin": false,
"useChat": true,
"functionRestriction": 0,
"useIndivFilter": false,
"indivs": [],
"useVPTGrpFilter": false,
"vptGrps": [],
"useLandmarkCategoryFilter": false,
"landmarkCategories": [],
"useConnectionLimit": false
}
}
]
type:0= create /1= update /2= delete
レスポンス 200 OK
成功時:
{
"status": "Success",
"data": {
"created_user_account_id": [101, 102]
}
}
失敗時:
{
"status": "Failure",
"errors": ["エラーメッセージ"]
}
POST /api/v1/Mobile/BulkUpdateCallback
移動局一括更新の完了コールバックを受け取ります。AWS SQS から呼び出される内部エンドポイントです。
| 項目 | 内容 |
|---|---|
| 認証 | APIキー(TASK_CALLBACK_API_KEY 環境変数) |
| 呼び出し元 | AWS Lambda(SQS トリガー) |
| データ書き込み先 | mloca-api / AWS DynamoDB |
内部処理フロー
sequenceDiagram
participant L as AWS Lambda
participant R as /api/v1/Mobile/BulkUpdateCallback
participant M as mloca-api
participant DB as AWS DynamoDB
L->>R: POST([MobileInput])
R->>M: 各端末を順次更新(num / name / tagIds)
R->>DB: 処理結果を書き込み(completed=1, callback_result_status, callback_result_body)
R-->>L: 200 OK(Status: "Success" / "Failure")
フロントエンドは
fetchBulkUpdateMobileStatusクエリで処理状況をポーリングします。
リクエストボディ
[
{
"id": 12345,
"num": "001",
"name": "車両A",
"tagIds": [1, 2]
}
]
レスポンス 200 OK
成功時:
{
"status": "Success"
}
失敗時:
{
"status": "Failure",
"errors": ["エラーメッセージ"]
}
GET /health/ready
ヘルスチェック。依存サービス(geo-api / mloca-api / voip-api)の死活確認を含みます。
| 項目 | 内容 |
|---|---|
| 認証 | 不要 |
レスポンス 200 OK
{
"Status": "OK",
"Items": {
"geo-api": "OK",
"mloca-api": "OK",
"voip-api": "OK"
}
}
依存サービスのいずれかが応答しない場合、
Statusは"NG"になります。
GET /health/live
サービス自身の死活確認。依存サービスはチェックしません。
| 項目 | 内容 |
|---|---|
| 認証 | 不要 |
レスポンス 200 OK
認証方式
APIキー認証(コールバックエンドポイント)
コールバック系エンドポイント(/api/v1/*Callback)は、リクエストヘッダーに APIキーを付与する必要があります。
x-api-key: <TASK_CALLBACK_API_KEY>
TASK_CALLBACK_API_KEYは環境変数で設定します。通常は AWS Lambda からのみ呼び出されます。
GraphQL エンドポイント
| メソッド | パス | 概要 |
|---|---|---|
POST |
/graphql |
GraphQL リクエスト(クエリ・ミューテーション) |
GET |
/playground |
GraphQL Playground(開発環境のみ) |
GraphQL の詳細は queries.md / mutations.md を参照してください。