JSON操作的MVC命名约定

tag*_*s2k 6 model-view-controller json naming-conventions

在编写具有前端和JSON路径的MVC应用程序时,建议使用哪种命名约定?

例如,假设您网站的用户有"事物".他们应该能够访问页面来查看他们的内容,但我们还需要一种方法将这些内容作为JSON提取回其他页面.我已经能够想到几个选项,但我对其中任何一个都不够兴奋.这是我得到的:

  1. 用于UI的/ things/list,用于JSON的/ json /的东西 - 这将需要一个JsonController,它最终将提供不同类型的对象,从而在我们开始之前消除任何实体分离的机会.
  2. /事/列表的UI,/事/列表/ JSON的JSON -可能是我此刻的最佳选择,但是需要魔法穿线(尽管只是"JSON").此外,如果您还需要一个(字符串ID)操作签名来接收某些过滤器参数等,那么您可以选择添加额外路由或执行一些脏字符串拆分.
  3. / account/mythings for UI,/ things/list for JSON - 有点干净,但可能并不总是有一个相关的控制器,你可以提供"东西".另外,你再次混合实体.

欢迎所有和任何建议,谢谢!

Pet*_*ton 15

可以说道路名称都可以是相同的.您可以检查客户端所需响应的mime类型的Accept标头,然后根据您在那里找到的内容返回相应的视图:

  • application/json:JSON View
  • text/xml:XML视图
  • text/plain,text/html:JSP视图

浏览器将此字段设置为HTML; 您的JSON客户端只需根据需要设置此字段.

  • 我同意.这就是HTTP内容协商的目的.我建议您定义自己的mime类型,以便您可以对JSON数据格式进行版本控制.像application/vnd.mycorp.myformat-1.0 + json之类的东西.这样一来,当某事在您的格式更改,您可以将其更改为应用程序/ vnd.mycorp.myformat-1.1 + JSON(用于向后兼容的变化)或应用程序/ vnd.mycorp.myformat-2.0 + JSON(用于向后兼容更改). (2认同)