コンテンツにスキップ

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 を参照してください。