#97prog_ja 19 誰にとっての「利便性」か

プログラマが知るべき97のこと

今まさにRESTでAPIを設計&実装をしていて頭を悩ませている。

このエントリーに書かれていることは
「実装するものの利便性のみでAPIを提供してはいけない」
ということ。

APIというのはApplication Program Interfaceの略で要はインタフェース。
ユーザであれプログラムであれインタフェースは提供先のために
存在するものでなければならないと思った。

冗長で、不整合で、美しくないものを作りたくない、という意図は、基本的に間違っていません。
しかし落ち着いてより深く考えるならば、それらの対偶にあるのは効率的、整合性、美しさです。
必ずしも「利便性」ではありません。APIを作るというのは、複雑な処理を隠蔽するということです。