在创建REST API时,API内的命名约定是否有任何指导方针或事实上的标准(例如:URL端点路径组件,查询字符串参数)?驼色大写,还是下划线?其他人呢?
例如:
api.service.com/helloWorld/userId/x
or
api.service.com/hello_world/user_id/x
注意:这不是RESTful API设计的问题,而是用于最终路径组件和/或所使用的查询字符串参数的命名约定指南。
任何指导方针将不胜感激。
在创建REST API时,API内的命名约定是否有任何指导方针或事实上的标准(例如:URL端点路径组件,查询字符串参数)?驼色大写,还是下划线?其他人呢?
例如:
api.service.com/helloWorld/userId/x
or
api.service.com/hello_world/user_id/x
注意:这不是RESTful API设计的问题,而是用于最终路径组件和/或所使用的查询字符串参数的命名约定指南。
任何指导方针将不胜感激。
当前回答
如果你使用Oauth2对客户端进行身份验证,我认为你至少需要在两个参数名上加下划线:
client_id client_secret
我在我的REST API(尚未发布)中使用了camelCase。在编写API文档时,我一直在考虑将所有内容都更改为snake_case,这样我就不必解释为什么Oauth参数是snake_case,而其他参数不是。
参见:https://www.rfc-editor.org/rfc/rfc6749
其他回答
Dropbox、Twitter、谷歌Web Services和Facebook的REST API都使用下划线。
我觉得你应该避免戴驼峰帽。标准是使用小写字母。我还会避免使用下划线,而是使用破折号
所以你的URL应该是这样的(忽略你所要求的设计问题:-))
api.service.com/hello-world/user-id/x
我不认为骆驼的情况是这个例子中的问题,但我认为对于上面的例子,一个更RESTful的命名约定应该是:
api.service.com/helloWorld/userId/x
而不是让userId作为一个查询参数(这是完全合法的),我的例子以一种更RESTful的方式表示该资源。
不。REST与URI命名约定无关。如果您将这些约定作为API的一部分包含在带外,而不是通过超文本,那么您的API就不是RESTful的。
欲了解更多信息,请参见http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
如果你使用Oauth2对客户端进行身份验证,我认为你至少需要在两个参数名上加下划线:
client_id client_secret
我在我的REST API(尚未发布)中使用了camelCase。在编写API文档时,我一直在考虑将所有内容都更改为snake_case,这样我就不必解释为什么Oauth参数是snake_case,而其他参数不是。
参见:https://www.rfc-editor.org/rfc/rfc6749