2021年12月5日日曜日

WebAPIエンドポイントの複合語について

 以前、WebAPIのパラメーターにキャメルケースを使うかスネークケースを使うかという記事を書きました。

そこでは「統一されていればどっちでもいい」という当たり障りのないことを書きつつ、URLにではアンダースコアが使えないよー的なことも書きました(RFC952のことをすっかり忘れていてお恥ずかしい)。

今回はそれに対する補足です。

どこまで統一感をもたせるかで変わってくる

例えば、「ホスト名」「パス」「クエリーパラメーター」「フラグメント」「リクエストボディー」のすべてで同じものに統一したい場合はキャメルケース(camelCase)しか選択肢がありません。ドメイン名にスネークケース(snake_case)が使えず、クエリーパラメーターやリクエストボディーにケバブケース(kebab-case)を使うのは一般的ではないからです。

でも「エンドポイントとパラメーターは別物」と割り切ってしまい、「ホスト名」「パス」「フラグメント」をケバブケースで統一して、「クエリーパラメーター」「リクエストボディー」はキャメルケースまたはスネークケースで統一するという方法もアリですね。

いくつか調べてみた

有名サービスのWebAPIはどうやっているのか調べてみました。

サービス エンドポイント パラメーター
GitHub kebab-case snake_case
Twitter snake_case snake_case
Atlassian(JIRA) (複数単語からなるエンドポイントがない) lowerCamelCase
Google(GCP) lowerCamelCase lowerCamelCase

意外とバラバラでした。ちなみにSlackのエンドポイントは上記のいずれでもなく、単語をピリオドでつなげています。そもそもREST APIではないので比較対象として適切なのかわかりませんが。

というわけでお好きな方法をどうぞ

0 件のコメント:

コメントを投稿