API連携とは?「つながる」の先に確認したいデータと操作
二つのサービスで同じ情報を入力していると、「APIで連携できないか」と考えることがあります。APIが何を提供する仕組みなのか、連携できるという説明だけでは分からない対象・権限・更新方法を、在庫表示の仮例で解説します。
APIは、プログラムから機能を利用するための窓口
APIはApplication Programming Interfaceの略で、プログラムが別の機能を利用するための取り決めです。利用する側は決められた方法で依頼し、結果を受け取ります。内部の仕組みをすべて直接操作する必要はありません。
MDNのAPI入門は、この役割と、ブラウザが備えるAPI・外部サービスが提供するAPIなどの違いを説明しています。APIにはさまざまな種類があり、本記事ではこの説明を踏まえ、サービス間でデータをやり取りする場面に絞ります。
「APIがある」というだけでは、そのサービスの画面上でできる操作をすべて外部から行えるとは限りません。連携したい機能がAPIとして提供されているかを確かめることが、出発点になります。
データを読むことと、変更すること
たとえば、倉庫の管理システムから在庫数を取り出し、社内の一覧画面に表示する場合を考えます。これは説明用の仮例です。
この連携では、在庫を読む機能があれば目的を満たせるかもしれません。一方、一覧画面から入出庫を登録したいなら、在庫の変更を受け付ける機能と権限が必要になります。
閲覧できることと、更新できることを分けて考えると、必要以上の権限を渡さずに済みます。 次の表は、本記事が提案する整理例です。
表が見切れる場合は横にスクロールできます
やりたいこと | 確認する点 |
|---|---|
在庫数を表示する | 取得できる商品・倉庫の範囲と、情報の時点。 |
入出庫を登録する | 更新権限、入力条件、登録結果の確認方法。 |
登録を取り消す | 取り消し操作の有無と、履歴の残り方。 |
サービスごとの権限や制限は、実際のAPI仕様で確認する必要があります。画面からログインできる権限と、連携用の権限が同じだと決め付けないことも大切です。
項目名が同じでも、意味が同じとは限らない
連携の難しさは通信だけではありません。一方のシステムでは「在庫」が倉庫内の総数を指し、もう一方では予約分を除いた数を指すなら、値をそのまま移すと誤解が生まれます。
商品コード、数量の単位、日時の時差、取り消した記録の扱いなど、両側で何を表しているかを書き出すと、変換が必要な箇所が見えます。「空欄」と「ゼロ」も同じ意味とは限りません。
仮例の一覧画面なら、総数なのか販売可能数なのかを表示名に反映し、どちらのシステムの情報を正本とするか決める方法があります。同じ値を両側から自由に変更するより、食い違ったときの判断を整理しやすくなります。
失敗したときの扱いまで、連携に含める
依頼を送っても返事が来ない場合、処理が実行されていないのか、実行済みで返事だけ届かなかったのかは、その状況だけでは分からないことがあります。書き込みをそのまま繰り返せば、重複登録になる可能性も考慮しなければなりません。
連携を検討する際には、登録結果を後から調べる方法、同じ依頼を重複させない仕組み、失敗を担当者が知る方法を仕様で確かめるとよいでしょう。利用回数の上限や障害時の扱いも、接続先によって異なります。
自動化の範囲を決めるには、まず「どのデータを」「何の操作のために」「いつ」渡すかを一文にすると、必要な機能が絞れます。接続できたことに加え、業務の結果が正しいことを確認するためです。
まとめ
- APIは、プログラムから決められた機能を利用するための窓口です。
- 読み取り・書き込みの範囲と、両側のデータの意味を確かめます。
- 重複や通信失敗を含めて、結果の確認・復旧方法を考えます。
変化があったときに通知を受け取る仕組みはWebhookの基礎、AIから機能を使う接続方式はMCPの基礎で紹介しています。
