ノーコードで簡単に?は本当か 「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を使ってそれぞれのニーズに応えようとすると、ノーコードの連携ツールでは限界があって、結局きちんとしたプログラミングが必要になります。

過去記事アーカイブ

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