以下に、データ管理WebAPIを利用する場合の注意事項を記述します。
HTTPリクエストは、WEBサーバ→データ管理機能という流れで処理を行います。そのため、フロントのWEBサーバやJavaEE実行環境で処理が折り返されるため、以下のような現象が起きる可能性があります。
HTTPメッセージフォーマット/パスフォーマット/JSONフォーマット/値型に違反した場合、フロントの他コンポーネントが400/500番台の異常系ステータスコードでレスポンスしてしまい、Interstage AR Processing Serverのレスポンスを返せない場合があります。
スマートデバイスとJavaEE実行環境との間に設置する機能(HTTPサーバ等)により、HTTPステータスコードが変わる場合があります。
数値型のパラメータに型の最大値を超える値を指定すると、マイナス値やNULLに変換される場合があります。
存在はしているが不正な値を参照した場合、[{WHAT} must be not null."]という例外が返ることがあります。この場合、nullだけでなく、フォーマット違反も疑って、対処してください。
Interstage AR Processing Serverに巨大な定義を渡すと、サーバ処理能力低下を招く危険性があります。悪意のある第三者による攻撃だけでなく、正式利用者からの誤用を避けるためにも、APIのリクエストボディの最大値制約を設けてください。
文字セットはUnicode, リクエスト/レスポンスのエンコーディングは、UTF-8とします。
注意
URLエンコーディングについて
本書に記載のURL例は、分かりやすさのために平文で記載していますが、本来はUTF-8でURLエンコーディングされるべきです。
文字列長制約は、UTF-16(0面以外はサロゲートペアの2文字表現)での数とします。
文字列値に0x00を含めることはできません。また、文字シーケンス異常(サロゲートペアの並び順誤り等)や、非文字(U+FFFE, U+FFFF等)を指定すると、流通経路やデータストアで落ちる(0x3Fになる等)可能性があります。
ソート順は、Unicodeコードポイント順とします。
Interstage AR Processing Serverでは、各テーブルに対し以下のようなレコード制限を設けます。
テーブル名 | 最大レコード数 |
---|---|
QType | 104 |
QAttribute | 3100 |
QEntity | 1,100,000 |
QValue | 31,000,000 |
Interstage AR Processing Serverで使用しているlong型の値はJavaのlong型と同等になります。ご利用のプログラム言語やアプリケーション実行環境によっては、long型のすべてを扱えない可能性があります。
例
Interstage AR Processing Serverで格納しているlong型の値(12345678901234567890) がJavaScriptでは12345678901234567000に丸められます。
Interstage AR Processing Serverで使用するlong型には、以下のケースがあります。ケース毎に利用クライアント側で対処してください。
Qvalue
以下のようなlong型の値を挿入する場合は、利用する全クライアントを考慮して値の大きさを決めてください。
Qvalueがlong型の場合
long型のQvalueを検索する場合(qvalueRangesとlongValueRangesに指定する場合)
Interstage AR Processing Serverで自動採番するID
以下のIDはエポックタイム(micro秒単位)で生成しています。JavaScriptを使用する場合、100年以上はNumber型として正常に扱うことができます。
QentityやQvalue、ファイル管理のID
IDを使用した検索
検索API実行時の該当レコード数(unlimitedRecordCount)
Interstage AR Processing Serverに登録するレコード数を扱えるようにクライアント側で対処してください。