我目前正在web服务器上构建一个外部可访问的API。web服务器使用Rails,因此内部变量以snake_case命名。但是对api的大多数调用都将通过javascript进行,它通常使用lowerCamelCase进行变量命名。
我的问题是:有没有人能建议一种策略,在蛇的案例变量和骆驼的案例变量之间画出一条线?如果服务器接受以camel方式发布的变量,则会增加服务器代码(特别是因为路由参数是由rails的“约定”部分处理的)。还是应该强制javascript客户端在蛇的情况下发布变量,从而使客户端变得混乱?
欢迎任何和所有的想法,但如果有人有一些文档或信息的链接,从一个具有API开发经验的来源,那将是理想的。Apigee的人建议在他们的Web文档中使用JSON作为默认设置,并使用camelCase,但我想看看是否有其他最佳实践类型的建议。
谢谢
发布于 2013-03-13 17:48:06
快速而令人沮丧的回答:没有人能为你回答这个问题,因为这完全取决于你希望你的界面看起来是什么样子。这是一个设计决策。
现在,如果您的客户端总是使用ajax来访问您的API,那么公开一个基于camelcase的接口确实是明智的。
好消息是,没有什么能阻止您两全其美:只需创建一个camelcase / snakecase转换类。它将在接收请求时解析参数,并返回标准化的参数散列,反过来,模型将在其as_json方法中调用,以返回驼峰键。
此解决方案增加了一些开销,但其优点是使您的命名约定和转换规则显式,就像ActiveModel::Naming等所做的那样。
https://stackoverflow.com/questions/15374609
复制相似问题