行動すれば次の現実

テック中心の個人ブログ

良いエンドポイントとは何か

良いエンドポイントを意識すると使用者にとって理解しやすく、使いやすいAPIを提供できます。

また、実装者にとってもメンテナンスしやすく、不具合の温床を防ぐことにも繋がります。 そのようなAPIを実装するためには、「どのようなエンドポイントが良いのか」を理解する必要があります。

短くて入力しやすい

短くて入力しやすいということはシンプルで覚えやすいことに繋がります。使用者にとって使いやすいAPIと言えるでしょう。

x https://api.example.com/service/api/search
o https://api.example.com/search

人間が読んで理解できる

そのURLを見ただけで、それ以外の情報がなくてもそれが何を目的としたものなのかがある程度わかるようにしておくことが良いでしょう。 そのためには単語を無闇矢鱈に省略したりしないことです。

x https://api.example.com/p/12345
o https://api.example.com/products/12345

大文字小文字が混在していない

大文字小文字が混在するとAPIがわかりづらくなり、間違いのもとに繋がります。デファクトスタンダードである小文字に統一することが良いでしょう。

x https://api.example.com/USERS/12345
o https://api.example.com/users/12345

サーバー側のアーキテクチャが反映されていない

サーバー側がどのようなアーキテクチャを使用してアプリケーションを実装しているかの情報は使用者には全く関係のない情報ですのでURIには反映させないほうが良いでしょう。

また、アーキテクチャが変更された際にURIも変更することになり、使用者・実装者ともに手間が増えてしまいます。

x https://api.example.com/cgi-bin/get_user.php?user=100

ルールが統一されている

URIの構造などのルールが統一されていないと、使用者にとっては誤解を招きやすくトラブルの温床となってしまいます。

例えばid情報をクエリパラメータに載せるのか、URIに載せるのか、単数形なのか、複数形なのかなどのルールを統一させておく必要があります。

# ルールが統一されていない例
https://api.example.com/products?id=100
https://api.example.com/products/100/reservation