1

我目前正在 Web 服务器上构建外部可访问的 API。Web 服务器使用 Rails,因此内部变量以snake_case. 但是大多数对 api 的调用将通过 javascript 进行,这通常lowerCamelCase用于变量命名。

我的问题是:有人可以提出一个策略来绘制蛇案例变量和骆驼案例变量之间的界限吗?服务器是否应该接受以驼峰形式发布的变量,从而使服务器代码变得丑陋(特别是因为路由参数是由 rails 的“约定”部分处理的)。还是应该强制 javascript 客户端在蛇形案例中发布变量,从而丑化客户端?

欢迎任何和所有想法,但如果有人从具有 API 开发经验的来源获得一些文档或信息的链接,那将是理想的。Apigee 的人建议使用 JSON 作为默认值,并在他们的 Web Api 文档中使用 camelCase,但我很想看看是否有任何其他最佳实践类型建议。

谢谢

4

1 回答 1

0

快速而令人沮丧的答案:没有人可以为您回答这个问题,因为这完全取决于您希望界面的外观。这是一个设计决定

现在,如果您的客户总是使用 ajax 来访问您的 API,那么公开基于驼峰式的接口确实是明智的。

好消息是,没有什么能阻止您两全其美:只需创建一个 camelcase/snakecase 转换器类。它会在接收到请求时解析参数并返回规范化的参数散列,反之,您的模型会在其as_json方法中调用它以返回驼峰式键。

此解决方案增加了一些开销,但具有使您的命名约定和转换规则明确的优势,就像ActiveModel::Naming等一样。

于 2013-03-13T09:48:06.193 回答