1

現在、Webサーバー上で外部からアクセス可能なAPIを構築中です。WebサーバーはRailsを使用するため、内部変数はで名前が付けられsnake_caseます。ただし、APIへの呼び出しのほとんどは、通常はlowerCamelCase変数の命名に使用されるjavascriptを介して行われます。

私の質問はこれです:誰かがスネークケース変数とラクダケース変数の間の線が引かれる戦略を提案できますか?サーバーがキャメルケースで投稿された変数を受け入れる場合、サーバーコードを醜くします(特に、ルーティングされたパラメーターはレールの「従来の」部分によって処理されるため)。または、javascriptクライアントは、スネークケースで変数を投稿するように強制され、クライアントを醜くする必要がありますか?

すべてのアイデアを歓迎しますが、誰かがAPI開発の経験を持つソースからのドキュメントや情報へのリンクを持っている場合、それは理想的です。Apigeeのメンバーは、デフォルトとしてJSONを使用し、Web ApiドキュメントでcamelCaseを使用することを推奨していますが、他にベストプラクティスタイプの提案があるかどうかを確認したいと思います。

ありがとう

4

1 に答える 1

0

迅速で苛立たしい答え:それはすべてあなたがあなたのインターフェースをどのように見せたいかに依存するので、誰もあなたのためにそれに答えることはできません。これは設計上の決定です。

これで、クライアントが常にajaxを使用してAPIにアクセスする場合は、キャメルケースベースのインターフェイスを公開するのが賢明です。

良いニュースは、両方の長所を享受することを妨げるものは何もないということです。キャメルケース/スネークケースコンバータークラスを作成するだけです。リクエストを受信するとparamsを解析し、正規化されたparamsハッシュas_jsonを返します。逆に、モデルからメソッドで呼び出されて、キャメルケースのキーが返されます。

このソリューションにはオーバーヘッドがいくらか追加されますが、命名規則と変換ルールを明示的にするという利点がありますActiveModel::Naming

于 2013-03-13T09:48:06.193 に答える