2023/05/31
API連携の仕組みとECサイトと物流システムの連携について(前編)
皆様こんにちは!日本物流開発コラム担当の「かんじ」です!
いつも当コラムをご愛読いただきありがとうございます!
今回は、「API連携とは何なのか」について解説していきます。
前編では「APIの基本的な仕組み」、後編では「ECサイトと物流システムがどのようにAPI連携されるのか」について紹介します。
API連携とは
APIとはApplication Programming Interfaceの略であり、異なるシステム同士が通信を行うためのインターフェース(コンセントとプラグのようなもの)のことを指します。
API連携とは、「統一されたデータフォーマット(変換プラグのようなもの)」によって、異なるシステム間の通信を行うことです。異なるシステムにそれぞれAPI連携が出来る仕組みを作ることで、全く違う言語で作られたシステム同士の通信を行うことが出来ます。
主な特徴は、ネットワーク上で、リアルタイムにデータのやり取りを行うことです。
データフォーマットの違いとCSV連携の違い
API連携では、様々なデータフォーマットでの通信を行うことが出来ます。
テキストデータ(txt,json,csv,xml,yaml)や画像データ(jpg,png,webp)など、様々なデータの送受信をすることが可能です。
受信したテキストデータの情報を読み取って、送信する「テキストデータ」や「画像ファイル」を変える等が可能です。
ただし、基本的にはJSONファイルでの通信が使われます。
理由は「データ量が比較的少ない」、「処理時の柔軟性がある」、「比較的文字化けしにくい」等があります。
CSVと比較するとJSONはデータ量が多くなりますが、他のデータ形式と比べると、データ量が少なくなります。
CSVはコンマで区切られた文字列ですが、JSONはデータ毎にキー(名前)が付いています。キーの名前によって、処理を変えたり取り込む情報を変えたりすることが可能です。CSVではレコードヘッダーの名前や列の順番を変更するとシステム改修が必要になりますが、JSONの場合はキーを変更しない限りはレコードヘッダー名や列の順番を変えても、システム変更なく動作させることが可能です。
JSONを使う場合文字コードがUTF-8である場合が、CSVと比べても多いです。CSVの場合、日本語がSHIFT-JISが混ざっているケースが増えるため、システムに文字コードを判定して変換する処理が余分に必要になります。
以上のことから、API通信で利用するフォーマットは原則JSONファイルになります。
API連携の受信サーバーとは
リアルタイムでデータ通信を行うに当たって、通信を行うシステムのいずれかに受信サーバーを用意する必要があります。
受信サーバーに対してリクエストを行うこと(命令を行うデータを送ること)で、受信サーバーが送信者に対して命令を実行するデータを返すことが出来ます。
送信者側は受信サーバーに対して、データの「取得」「追加」「更新」「削除」などの命令を行うことが可能です。
簡単な例を挙げると、送信者が「現在の出荷状況」というデータを受信サーバーに送ると、受信サーバーが送信者に対して「出荷状況の詳細データを返す」というような仕組みです。
送信者側で1分おきにリクエストを送る仕組みを作ることで、リアルタイムな情報を送受信することが可能です。
他にも、送信者側で商品が発送される度に、受信サーバーに対してリクエストを送るような仕組みにすれば、出荷完了データを受信サーバー側に送ることが可能です。
受信サーバーの設置はシステムのどちら側でも可能です。運用上は、受信サーバーを作る方の負担が大きいので、どちらで作るのかを決める必要があります。
また、通信方法や送受信するデータの構造によって処理方法が変わる為、API連携をするシステムの管理者双方で、どのような通信をするのか話し合う必要があります。
REST APIとは
「API連携を行う」といっても利用可能なデータ形式は様々です。システムによってデータの構造も違ってくるので、話し合いで決める必要があります。
ただ、ルールがシステムによって異なり、「データの品質にばらつきがある」という問題が発生します。
データの品質が標準化されたルールのことをREST APIと呼びます。
ルールと言っても、会社によって解釈は異なるのが実情です。
一般的なルールは大手IT企業のガイドラインから参照してください。
api-guidelines/Guidelines.md at vNext · microsoft/api-guidelines · GitHub
API 設計ガイド | Cloud APIs | Google Cloud
複数のシステムと連携することを想定している場合は、開発側の負担を減らすために、出来る限りRESTのルールに従ったAPI設計を行うことが重要になります。
まとめ
「API連携とはなんなのか」について理解していただけたでしょうか。
API連携は、システム連携を人の手を介さずに行うことが出来る便利なものですが、同時にシステム設計をしっかりとしておかないと、上手く動作しないことがあります。
事前の打ち合わせにより、システムの扱いを検討する必要があることを理解しておきましょう。
当社は物流業務のアウトソーシングサービスを行っており、WMSを自社開発しております。
サービスを利用する際、「API連携を行いたい」という要望があれば、事前の話し合いが必要なので、下記お問い合わせフォームからご相談ください。