はじめに
HULFT SquareのAPIマネジメント構築では、最大10MBのデータまでしかレスポンスデータとして返すことはできません。もしそれ以上のデータを返したい場合にはどうすればよいかの回避策を本記事では記載していきます。
3つの回避策
今回はHULFT Squareで在庫情報を、社外の得意先へAPI基盤として公開したいということを考えます。その際APIで返すべき在庫情報が多く、10MBを超えてしまうという場合の回避策を3つご紹介します。
回避策①API結果の件数を絞る
1つ目の回避策は、返却するAPI結果の件数を絞る方法です。例えば、返すべき情報が1件2KBの場合、最大件数を5,000件とし、13,000件のデータを出力する場合、下記のような構成で回避可能です。
今回は件数で区切りましたが、例えば商品の「分類」毎で絞ることで、10MB以内に収めることができるのであれば、そういった絞り方でも問題ございません。
元データに「項番」がある場合は、そのまま「項番」を使い、「[指定された値]件目」~「[指定された値]+5000件目」のデータを返すようにします。もしデータに「項番」なければ、HULFT Square ではデータに「項番」を振るということも可能なため、事前にデータに「項番」を与えておきます。
- メリット
-
・[最大件数]を超えうる相手先にのみ、件数の指定が必要、その他の得意先は、意識することなく非常にシンプルにお使いいただける
・HULFT Square APIマネジメントの権限管理のみ管理すればよい
- デメリット
- [最大件数]を超える得意先には、数度に分けてコールしていただき、データを結合する必要がある
またこの方法の場合、サーバ側で先のコールの情報を残しておき、それに応じた戻り値を2度目以降のAPIコールに対して行うということも考えられます。しかしREST APIは原則として、同じコールには同じリターンを返すべきであり、サーバ側が状態を保持しておくことはすいしょうされませ
回避策②API結果を共用クラウドストレージ上にファイルで書き出して共有することで連携
次の回避策はAPIで問い合わせた情報をそのままAPIで返却するのではなく、クラウドストレージへ書き出す方法です。構成は下記の通りです。
共有のクラウドストレージへ書き出すことでAPIデータ量の制限を回避することが可能です。相手方は共有クラウドストレージからファイルとして取得します。
- メリット
- データサイズを気にする必要がない
- デメリット
- ・相手方には別途クラウドストレージから結果を取得する必要がある
・クラウドストレージのユーザ/権限管理が別途必要
回避策③API結果をHULFT Square上にファイルで書き出し、SFTP転送で連携
最後の回避策も同じく、APIで問い合わせた情報をそのままAPIで返却するのではなく、今度はHULFT Square上にファイルとして書き出す方法です。構成は下記の通りです。
こちらも一度HULFT Squareのストレージにファイルとして書き込むことで、APIのデータ制限を回避可能です。相手方はSFTPサービスを使い、結果を取得します。またHULFT Squareは自身の機能で、サービス上にSFTPサーバを建てることも可能です。
- メリット
- データサイズを気にする必要がない
- デメリット
- ・相手方には別途SFTPで結果を取得する必要がある
・SFTPのユーザ管理が別途必要
最後に
いかがでしたでしょうか。今回はHULFT SquareのAPIマネジメント機能のデータサイズの制限への回避策について記載しました。10MBといった制限に直面した人を救うことができれば幸いです。また3つの回避策の内「①API結果の件数を絞る」はHULFT Squareだけで実現することが可能な回避策です。特に別の理由がなければ最も推奨できるほうほうだと考えています。
ここまで読んでいただきありがとうございました。
HULFT Squareについて知りたい方はこちら