php – 使用API​​ Web服务进行Symfony路由

我正在完成我们的Web服务的API.现在我正在考虑如何改变路线,所以如果我们决定制作新版本,我们就不会破坏第一个API.

马上:

url: /api/:action
param: { module: api, action: :action }
requirements:
  sf_format: (?:xml|json)

我的想法:

url: /api/v1/:module/:action
param: { module: api1, action: :action }
requirements:
  sf_format: (?:xml|json)

url: /api/v2/:module/:action
param: { module: api2, action: :action }
requirements:
  sf_format: (?:xml|json)

这很容易,但完美的解决方案是拥有以下类型的路线

# Automatically redirects to one module or another
url: /api/v:version/:module/:action
param: { module: api:version, action: :action }
requirements:
  sf_format: (?:xml|json)

关于如何做的任何想法?你建议我们做什么?

谢谢!

最佳答案 我认为有两条路线的方法,其中一条路径为v1,另一条路线路径为v2,这是更好的解决方案.这听起来像是重做工作,但是如果你开始思考,那么必须要考虑的是第一个与第二个不相容的原因.所以,混合2逻辑将是一个矫枉过正.如果你想在未来的某一天你可以拥有3个版本,你认为你的逻辑会是什么样子?

更好的解决方案是将两者分开,所以如果你需要停止对版本1的支持,那么删除版本1的文件会很容易.=)

点赞