『教えてヒロさん!』~Web APIを使いこなす~
投稿者:藤野裕司

今回は、Web APIについてもう少し掘り下げて、次のような点について解説します。
- EDIやファイル転送との違い
- 弱点や注意しなくてはならないこととその解決策
● Web APIとEDI・ファイル転送はどう違う?
前回、データ連携としてのWeb APIの強みについてお話ししました。今回はその続きとして、Web APIとEDI・ファイル転送の違いについて解説します。
前回の最後で、オープン系なら比較的容易にシステムをつなぐことができるとお伝えしましたが、これが最大のポイントになります。
従来ならシステムの連携は、企業間ならEDI、社内ならバッチのファイル転送、と相場が決まっていたのですが、そこに新しくWeb APIが名乗りを上げたのです。
ここでよく問い合わせが来るのが、Web APIとEDIやファイル転送では何が違うの?という点です。
復習を兼ねて以下にそれぞれの特徴をざっくりまとめます。
EDIやファイル転送は
- あくまでバッチのファイル連携
データが集まるまで待ち、業務が一区切りついたタイミングで、まとめてデータを送り出す、もしくは取り出されるのを待つ。
- 通信プロトコルは目的とツールによりバラバラ
所属する業界や利用の目的により通信プロトコルやツール類がバラバラに存在し、利用者にとってはなにがよいかなかなか判断がしづらく、覚えるべきことが多くて利用するための敷居が高い。
Web APIは、
- バッチもリアルも両方同時実行も可能
EDIやファイル転送のようなバッチの使い方もできるし、トランザクション単位でアプリケーションと緊密な準リアルタイムの処理もできる。
- 通信プロトコルもツール類も基本ルールを守っていれば相互連携も可能
通信規約は国際標準で決められているため、それに則った製品やオープンソース、自社開発のツールであっても、相互の接続は可能。
ただし、EDIにはデータや運用の標準が定められているものもあるが、他のファイル転送やWeb APIについては、そのあたりのルールがないため、相対で慎重に定める必要があります。
● Web APIにも弱点と注意点がある
ここまではWeb APIの利便性の高さについて語ってきました。
では、Web APIは万能なのでしょうか。いえ、これにもやはり弱点はあるのです。
産業システムでは、データ連携の重要性が叫ばれています。しかし、不用意にWeb APIを利用したデータ連携をするのは危険です。Web APIにも弱点があるのです。それは、便利さの影に潜んでいます。
- 簡単便利
簡単であるがゆえに、無秩序に作ってしまうと、汎用性のない接続不能のシステムを無数に生み出してしまう。特に、データについては、相手先ごと業務ごとに利用方法が異なるため、自分勝手な扱いにならないよう慎重に検討を進めなくてはならない。
また、オープンソースを多用すると、その整合性も含め管理が難しくなる。
- アプリケーションを外部から直接操作ができる
アプリケーションを外部から操作できると、柔軟な運用が可能となるが、その分誰でもアクセスできないように制限や認証を設ける、外部からのアタックを防ぐための対策を施す、など高度なセキュリティ対策が必要になる。
- ネットワークを活用
ネットワークを活用すると、異なるサイト・拠点で幅広い処理や運用ができる。その一方、一部の通信が不安定になると全体への影響が大きくなる。
ということで、便利で有効といわれるWeb APIも、使い方を間違うと、危険で面倒な曲者になってしまいます。
しかし、それらの弱点にも解決策はあるのです。
● Web API開発における規則
Web APIの利用については、さまざまな規則が用意されており、これを遵守することで先に述べたような弱点をカバーすることができます。
● Web APIの規則を形作る主な要素
- HTTP (Hypertext Transfer Protocol) : Web APIの通信の基礎を規定
Web APIの基礎となる通信プロトコル。HTTPメソッド(GET、POST、PUTなど)、ステータスコード、ヘッダーなど、Web APIの動作を規定する多くの要素を定義している。
- REST (Representational State Transfer) : Web APIの設計原則を提供
Web API設計のスタイルガイドのようなもの。リソース指向、ステートレス、キャッシャブルなど、Web APIが持つべき特性を定義している。
- JSON (JavaScript Object Notation) : データの表現方法を規定
Web APIで頻繁に利用されるデータ交換フォーマット。キーと値のペアで構成されるシンプルな構造のため、多くのプログラミング言語で扱いやすく、Web APIのデータ表現に広く採用されている。
- XML (eXtensible Markup Language) : データの表現方法を規定
JSONと同様にデータ交換フォーマットとして利用される。XMLは階層構造を持ち、より複雑なデータを表現できるが、JSONに比べて冗長。
- OAuth : セキュリティを担保
Web APIへのアクセスコントロールを安全に行うためのプロトコル。ユーザーの代わりにWeb APIにアクセスする際に、ユーザーの認証情報を安全に管理する方法を提供する。
- OpenAPI Specification : APIの仕様を記述
Web APIの設計を記述するための標準的なフォーマット。APIのエンドポイント、パラメータ、レスポンスなど、APIの詳細な仕様を記述することができる。
これらの規則に則っている限り、理屈上不整合は起こりません。といっても、これは見るからにゲンナリするような複雑さです。Web技術の進化、多様な利用シーン、開発者の自由度、などを考えると単純に「簡単便利」とは言えないでしょう。
● Web APIって結局面倒なのでは・・・
ここで考えるべきは、Web APIの利用目的です。つまりデータ連携を行う場合に必要な規則は何かということになります。目的を明確にすると、必要な規則も限られてきます。
そこで、これらの決まりごとを整理し使いやすくしたものが「データ連携基盤」として世の中に登場しています。
データ連携に必要な決まりごとはすべてこの基盤に集約されており、利用者はその目的に沿った設定をすれば、一通りのデータ連携は可能になるというわけです。
このように「データ連携基盤」があれば不整合がないWeb API利用はできそうです。
でも、「まだ難しそう」という印象を持たれる方が多いでしょう。。。
● 面倒なところはサービスにお任せ
データ連携基盤というエンジンがあっても、連携の内容について理解ができていないと、なかなか設定はできません。あわせて日々の運用も自分たちで行わなくてはなりません。
こうしたときに是非お勧めしたいのがデータインテグレーションサービスです。
このサービスは、データ連携にかかわる設定から運用に至るまで、まるごとおまかせできてしまいます。
従来のEDIからクラウド連携、Web APIによるシステム構築、データ変換・加工・編集、業務連携、データの管理からセキュリティまで、いろいろ相談しながら環境を整え、その後の運用メンテまで、利用者に寄り添ってサポートしてくれるのがデータインテグレーションサービスです。
信頼できるサービスにお任せできるのは、費用対効果で考えると非常に高価値な選択になるのではないでしょうか。
今回は、Web APIを少し深く考えてみました。
- 一般によく聞かれるEDIやファイル転送との違い
- Web APIの弱点や注意点
- Web APIの利用にかかわる規則群
- 弱みを解決するためのデータ連携基盤
- 面倒なところはサービスにお任せ
だいぶWeb APIの利用イメージが見えるようになったでしょうか。
次回は、身近なところから始める自律分散について考えてみたいと思います。