質問: ### RESTfulなAPIで構築APIを作成したい。 下記で記載する内容をどのように解決しているのかの質問と、 どのようにAPIを設計すれば下記のような問題を回避できるのか、 RESTfulなAPIで構築できるのか教えていただきたいです。 ### 発生している問題 現在私の会社ではAPIの名前はapi1,api2,api3というような名前でapiを書いています。 apiを呼ぶ時、api/v1/api1みたいな感じです。 これだと何の何をするapiかわからないのです。 なぜこういう名前にしたかというと理由は二つあります。 ・昔apiの数が膨大になった頃、一つ一つに適切な名前をつけることが困難になったから ・更新するプログラムで子テーブルの要素まで更新する場合、適切な名前が思いつかなくなった。 上記二つの理由から私の会社ではapi{n}という名前でapiを作ることが文化になりました。 また、APIを作る上で制約等がないためメンバーは、本来getメソッドが正しいところでもpostを使用したりと作る人によってバラバラです。 だから私はどうにかメンテナビリティが高くできないかということやRESTfulなAPIを作るにはどうしたらよいかを考えていて、 上司に相談すると、考えた結果api{n}という名前でapiを作ることを決断したとのことでした。 色々調べましたが、私たちと同じように作成している事例を聞いたことないし調べても出てきませんでした。 実際私たちのサービスよりも大きいサービスでAPIの数も私たちのサービスよりも多いサービスはいっぱいあると思います。 「apiの数が膨大になり、一つ一つに適切な名前をつけることが困難」という問題も当然あるとと思います。
回答: APIに限らずネーミングは大切です。変数ひとつにしてもその機能や用途が想像できるネーミングでなければなりません。その為にはなるべく早い段階から将来も含めてこんなAPIを提供したい、というリストを用意しましょう。 機能や用途も記述したAPIの一覧も提供しましょう。APIの数が多くなってもある程度用途毎に分類できるはずです。ネーミングに連番を使うのはネーミングを定義できる桁数の上限など最後の手段です。