ノーコードで簡単に?は本当か 「APIあるじゃん」にあえて異論を唱えてみる

CDataのある仙台でAPI連携とコネクティビティについて語り合ってみた

大谷イビサ 編集●ASCII 写真●曽根田元

提供: CData Software Japan

  • この記事をはてなブックマークに追加
  • 本文印刷

「つなぐ」「連携」など便利であいまいな言葉たち

大谷:とはいえ、サービス同士をつなぐのであれば、「APIあるじゃん」「データ連携ツールあるじゃん」という話になりませんか?

ASCII編集部 大谷イビサ コロナ禍で仙台出張は久しぶり

疋田:そうですね。特にビジネス側の人は、APIがあるから連携できると思いがちです。ただ、SaaSベンダーのAPIエコシステムの曼荼羅を見ると、全部が容易につながる素敵な未来がよく描かれますが、これってAPIの一部に過ぎないんですよね。

大谷:どういうことでしょうか?

疋田:よく考えてください。APIって、Application Programming Interfaceの略。つまり、プログラミングしたら、データを出してあげるよというインターフェイスなんです。

でも、日本ではAPI=外部とのデータ連携を可能にするというイメージが強い。Web APIがあれば、EAI(Enterprise Application Integration)のようにいろんなサービスと容易に連携できるんだと思い込んでいる方は多い。でも、実際は前述したプログラミングのためのインターフェイスに過ぎない。これが難しいところで、おそらく「連携ってなによ?」という質問が来ると思います。

大谷:「つなぐ」の次は、「連携」の定義ですね。確かに連携は記事でもめちゃくちゃ使いますね。

疋田:実は連携って英語にすると、いろいろな意味を含みます。Interfaceは接続する仕様を意味するし、ConnectやAccessも日本語で言えばどちらからかつなぐという意味です。Integrateは2つのものを統合するということだし、Syncは同期ですよね。Pipelineはデータを流し込むようなイメージだし、UploadやDownloadもファイルの送受信です。だから、EAIも、ETL(Extract,Transfer,Load)も、ツールとしては連携ツールになります。これらを日本語で表現すると全部「連携」です(笑)。

多岐に渡る連携の意味

「連携」って言葉は、できることややらなければいけないことを、フワッとさせすぎています。だから、連携と聞くと、先ほどの横文字を全部できるものだと思ってしまう。ビジネス系の人からは、連携という言葉が万能に見えてしまうわけです。

大谷:日常生活でも連携って便利に使えますよね。

疋田:「この案件、マーケ部門とも連携しておいて」とか言われますが、実際になにすべきかわかります? 「許可をとれ」なんだか、「協力を仰げ」なんだか、よくわからないですよね。まあ、「明確な指示は出さないけど、文句が出ないようにうまくやっておいてね」くらいの意味ですよね。この便利な連携という言葉がシステムの現場でも使われるがため、データ連携できると聞くと、「なんかうまくやってくれるのではないか?」という期待につながってしまうんだと思います。

でも、APIは前述した通り、プログラミングインターフェイスなので、基本はプログラムで1つ1つ命令を書いてあげないと、必要なデータが取り出せないということです。

大谷:なかなかビジネスパーソンにとっては敷居高いですね。

「ノーコードで簡単に」は本当か? API連携の無理ゲーを考える

疋田:たとえばBIツールやRPA、ETLのようなツールをSaaSに“つなげる”ケースを考えてみましょう。

一般的にはAPIがあるSaaSであればつながると考えます。うちで調べたところ、だいたい国内のSaaSの35%はAPIを持っています。正直、「35%しかAPIがない」って低いなと思いますが、カオスマップにのっているうちのだいたい3割はAPIでつなげるはずです。

逆にローカルで動かすツールはおおむね汎用コネクタを持っています。つまり、HTTPのリクエストをスクリプトで書いてくれれば、APIのリクエストでデータを取得できるというものです。つまり、結局はプログラミングが必要です。

ということで、ツールからSaaSにノーコードでデータを取得するには、APIを持っているSaaSで、かつツールが専用コネクタを持っている場合に限ります。だから、思ったよりずっと少ないはずなんです。

APIを持っているSaaSで専用コネクタを持っているケースなので、データ連携はとてもレア

大谷:ビジネス側の方々が「ノーコードで簡単につなげられる」という期待からすると、かなり限定されますよね。

疋田:しかも、APIの仕様は各社でバラバラです。REST対応と言いますが、RESTってそもそもプロトコルではないので、REST規約に全然則ってなくても、それっぽければ「RESTful」と言われます。その他、Get、Put、Post、Deleteで取得するはずが、全部Postで実装しているAPIとか、オレオレ実装もけっこうありますし、データの持ち方も、ユーザー側が欲しいリレーショナルではなく、キーバリューとか、階層型とか、スキーマないとかさまざまです。

たとえば、kintoneを例にとっても、デフォルトの顧客アプリなら簡単にデータ取得できるけど、ユーザーが手を加えたり、新規で作ったら連携できるか疑問です。認証に関しても、URLとパスワードでつなぐケースもあれば、クライアント証明書だったり、サービスアカウント接続が必要という場合もあります。データ取得に関しても、全部取得ではなくフィルタをかけたり、一部集計したり、さまざまなニーズがあります。SaaSはAPIごとに仕様が違うんです。

API仕様は各社によって大きく異なる

大谷:APIでつなぐという話がどれだけ広範な意味で、どれだけ大変か、よくわかりました。安易に連携とか言っててすいません。

疋田:昔はOracleのPL-SQLが独自実装とか言われていましたが、APIの定義の違いから比べると正直言って方言レベルです。APIのRESTfulって、「英語も、ドイツ語も、フランス語も、ラテン語系だから同じだよね」というくらいのラフさ(笑)。でも、全然違う言語なのに対して、あたかも同じように分類されているんです。

だから、APIを使ってそれぞれのニーズに応えようとすると、ノーコードの連携ツールでは限界があって、結局きちんとしたプログラミングが必要になります。

過去記事アーカイブ

2025年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
2024年
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2023年
04月
07月
08月
09月
10月
11月
12月