今やWebシステム構築の際は必ずと言っていいほど考慮するAPI連携。
APIとは、他社システムのデータを外部システムが使えるようにデータの取得や更新を出来るようにした仕組みだ。
インターネット経由での通信なので、認証を踏めば極端な話誰にでも使える。
Googleを始めFacebookなども提供しているし、イーロン・マスクがCEOになる前の旧TwitterではかなりAPIを提供していた。
私が今まで関わっていたシステムでも、ここ10年はかなりAPI連携をするシステムが多かった。
私自身、API作成をまかされたこともあるし、API連携も得意分野としてかなり対応してきた。
その中で困ったのは、API連携のオブジェクト的な概念を知らない人と一緒にシステム構築することだ。
APIを作る側がオブジェクト的な概念を分からない場合、APIの意義がなくなるような中継APIを作ってしまったりする。
要件定義側がAPIのその部分を分からないと、「使う側のこちらに合わせてAPIを細かく改修してよ」というオーダーが来たりする。
APIを使いやすくアップデートするのは良いのだが、使う側の意見を取り入れるのはあくまでそのAPIのあるべき姿に向かって汎用的に改修していくためであって、使う側の「言いなり」になっていたら不気味な仕様のAPIが出来上がってしまう。
一緒に組む人がこのあたりの匙加減が分からない場合はストレスになるし、違和感があっても飲み込まないといけないケースもある。
APIに特化した教育等は無いので、OJTで覚えていくしかない部分であることは確かだ。
そんな学びの谷間に入っているけど、API連携は今後システムの中でますます重要な位置になっていくだろう、というのは容易に想像できる。
なんとも歯がゆい状況だ。