いまとあるアプリケーションの Web API を設計しているのだが、思った以上にいろいろたいへん。
当たり前だが、APIをただ使うのに比べると10倍以上考えなければならないことがある。
そこである勉強会で教えてもらったのは、「Github API を真似すればいいんじゃね?」という話。調べてみると、すごくシンプルで使いやすい印象。リンクがふんだんにつかわれていて、ハイパーメディアっぽいし。
GitHub API が数ある Web API のなかでどのようなポジションにあるのかは寡聞にして知らない。だけど、かなりイケテル部類なのではないか?なにせ、天下の GitHub である。世界のあらゆる優秀なITエンジニアたちの目に毎日触れているのである。おかしな設計の API なんて怖くて晒せないはずだ。ということは、GitHub API をパクって参考にして、Web API を作れば相当いいものが作れるのではないか、という推測が成り立つ。
学習のため rest-client を使って、GitHub API をテストする spec を書いてみた。といっても、まだごく一部だけど(すでに動いている他所様の API を rspec でテストするっていうのはどうよ?という話もあるが。時間当たりのAPIコール数にも制限があるし)。
できれば GitHub API を頭に叩きこんで、「そもそも Web API はどうあるべきであるか」ということを学びたい。Web API が本格化してまだ10年経っていないであろうということもあり、まだこの分野は確立されたベストプラクティスがないように感じる。理論的な書籍や机上のウェブ標準はいろいろあるのだが、GitHub API にはすでに大きな実績がある。こういう実績のある API にこそ学ぶべきなんじゃないかと思う。