APIの設計と柔軟性

APIの設計・実装をしていて色々思うことがあった。API提供の目的の1つとして

  • 内部の複雑な実装を隠蔽化してライブラリなどの利用手段を提供する

というのがあると思う。
これはつまり

  • 余計な実装付加を減らして効率的な開発を促進させる

ということでもある。
一方で、あれもこれもやりたいという要望に答えようするとそれを吸収するための仕組みが必要になる。ロジックを隠蔽化するのが目的なのに柔軟性を得るためにXMLなどの手段を組み込むとXMLの知識などもAPIの利用者に要求することになる。
ジレンマです。対象ユーザがプログラミングなんて分かりませんという人ではなくて一応はデベロッパーなんだからそれくらいちょっと勉強してよと言う気持ちが強い。でも簡単な開発手段を提供することとの兼ね合いが難しい。要は前提条件をどこに置くかというとこに落ち着く気もするんだけどもね。APIの開発は面白いけど難しい。