メインコンテンツまでスキップ

制限事項

Report Flow Content Service APIの制限事項について説明します。

ヒント

これらの制限は本番環境(api.re-port-flow.com)に適用されます。


📦 リクエストサイズ制限

最大リクエストサイズ: 50MB

リクエストボディの最大サイズは50MB(Base64エンコード後)です。

実質的なファイルサイズ目安:
- Base64エンコード前: 約37MB
- エンコード後の膨張率: 約1.33倍
ヒント

帳票出力SaaSとして、大量の高解像度画像を含む帳票にも対応できるよう、十分な容量を確保しています。

超過時の挙動

リクエストサイズが50MBを超えた場合:

{
"statusCode": 413,
"message": "Payload Too Large",
"error": "Request Entity Too Large"
}

大容量ファイルの扱い方

大容量の画像やデータを扱う場合は、以下の方法を検討してください:

  1. 画像の最適化

    • 解像度を下げる(Web表示用は72-150dpi、印刷用は300dpi)
    • 圧縮率を調整する(JPEG品質80-85%推奨)
    • 不要なメタデータを削除する
  2. 非同期エンドポイントの使用

  3. データの分割

    • 1リクエストで複数のPDFを生成する場合、リクエストを分割する

⏱️ タイムアウト制限

同期エンドポイント: 120秒

対象エンドポイント:

  • POST /v1/file/sync/single
  • POST /v1/file/sync/multiple

複雑な帳票処理にも対応できるよう、120秒のタイムアウトを設定しています。

タイムアウト時の挙動:

{
"statusCode": 504,
"message": "Gateway Timeout",
"error": "Request timeout"
}

120秒を超える処理の場合:

  • 非同期エンドポイント(/async/single, /async/multiple)を使用
  • デザインの複雑さを軽減(画像数、テーブル行数を削減)
  • リクエストを分割

非同期エンドポイント: 制限なし

対象エンドポイント:

  • POST /v1/file/async/single
  • POST /v1/file/async/multiple

非同期エンドポイントにはタイムアウト制限がありません。大量のPDF生成や複雑なデザインの処理に適しています。


🚦 Rate Limit

2024年2月より、Rate Limitが実装されています。

Workspace単位の制限

Rate LimitはWorkspace単位で適用されます。同一Workspaceからのリクエストがカウントされるため、他のWorkspaceには影響しません。

エンドポイント種別制限値対象エンドポイント
同期エンドポイント30 requests/分/sync/single, /sync/multiple
非同期エンドポイント100 requests/分/async/single, /async/multiple
ダウンロード・取得100 requests/分/download/*, /design/parameter/*

Rate Limit超過時の挙動

Rate Limitを超過した場合、以下のレスポンスが返されます:

{
"statusCode": 429,
"message": "Rate limit exceeded for this workspace. Please try again in XX seconds.",
"error": "Too Many Requests"
}

設計根拠

  • 同期エンドポイント(30 req/min): 120秒のタイムアウトを考慮し、最大60並列処理に対応。ECSタスク容量に合わせた制限。
  • 非同期エンドポイント(100 req/min): バッチ処理や大量生成に対応。サーバーリソースを保護しつつ高スループットを実現。
  • ダウンロード(100 req/min): 軽量な操作のため高い制限値を設定。
ヒント

UI操作での通常利用(2秒に1リクエスト程度)であれば、制限に達することはありません。バッチ処理の場合は非同期エンドポイントをご利用ください。


📝 ファイル名制限

使用不可な文字

以下の文字はファイル名に使用できません:

文字名称
/スラッシュ
\バックスラッシュ
:コロン
*アスタリスク
?クエスチョンマーク
"ダブルクォート
< >山括弧
|パイプ
制御文字0x000x1F

上記以外の文字(英数字、日本語、スペース、各種記号等)はすべて使用可能です。

✅ 正しい例:
{
"fileName": "請求書_2024-01.pdf",
"fileName": "invoice-2024-01.pdf",
"fileName": "レポート (1月分).pdf",
"fileName": "report #001.pdf"
}

❌ 間違った例:
{
"fileName": "請求書/2024.pdf", // スラッシュ不可
"fileName": "data:2024.pdf", // コロン不可
"fileName": "report*.pdf" // アスタリスク不可
}

🔐 セキュリティ要件

HTTPS通信必須

本番環境ではHTTPS通信のみを受け付けます。HTTP通信は自動的にHTTPSにリダイレクトされます。

# ✅ 正しい
curl -X POST https://api.re-port-flow.com/v1/file/sync/single \
-H "appkey: your-application-key"

# ❌ 間違い(HTTPは使用不可)
curl -X POST http://api.re-port-flow.com/v1/file/sync/single

TLS バージョン

  • 最小バージョン: TLS 1.2
  • 推奨バージョン: TLS 1.3
  • TLS 1.0/1.1は使用できません

APIキーのローテーション

セキュリティ向上のため、3ヶ月ごとにアプリケーションキーを再生成することを推奨します。

詳細はAPIキー管理を参照してください。


📊 プラン制限

ワークスペースのプランによって以下の制限があります:

デザインファイル数制限

プランごとにワークスペース内で作成できるデザインファイルの上限が設定されています。

ファイル生成回数制限

プランごとに月間のPDF生成回数の上限が設定されています。

備考

詳細な制限値はプランによって異なります。管理画面で現在の使用状況と上限を確認できます。

プラン制限超過時の挙動

プラン制限に達した場合:

{
"statusCode": 403,
"message": "Plan limit exceeded",
"error": "Forbidden"
}

🌐 ネットワーク制限

CloudFront経由のリクエスト

外部からのリクエストはCloudFront経由で処理されます:

Client → CloudFront → ALB → ECS (content-service)

📋 その他の制限

ヘルスチェックエンドポイント

/v1/health/checkエンドポイントは認証不要でアクセス可能です。このエンドポイントはアクセスログに記録されません。

CORS設定

以下のヘッダーが許可されています:

  • Origin
  • X-Requested-With
  • Content-Type
  • Accept
  • Authorization
  • appkey

すべてのオリジン(*)からのリクエストを受け付けます。


🆘 制限超過時の対処方法

リクエストサイズ超過の場合

  1. 画像を最適化する
  2. データを分割する
  3. 非同期エンドポイントを使用する

タイムアウトの場合

  1. 非同期エンドポイント(/async/single, /async/multiple)を使用
  2. デザインを簡素化する
  3. リクエストを分割する

プラン制限超過の場合

  1. 管理画面でプランをアップグレードする
  2. 不要なデザインファイルを削除する
  3. 使用頻度を調整する

📞 サポート

制限事項に関するご質問やサポートが必要な場合:


更新履歴

日付内容
2026-02-15初版作成