【问题标题】:Pylons routing through folders塔架通过文件夹路由
【发布时间】:2012-04-26 17:35:09
【问题描述】:

我对 pylons 有点陌生,我的任务是设计一个 API 版本控制系统。我想将不同版本的 API 存储在不同的文件夹中。例如:

controllers/APIVersion/v1/clientAPI.py -- Version 1
controllers/APIVersion/v2/clientAPI.py -- Version 2
controllers/APIVersion/v3/clientAPI.py -- Version 3

访问这些 API 的请求应如下所示:

curl 'http://mySite/v1/clientAPI/get/' -- Should bring me to the first version
curl 'http://mySite/v2/clientAPI/get/' -- Should bring me to the second version

我知道我可以通过 routing.py 做到这一点。这是我的第一个想法,但似乎行不通:

map.connect('/APIVersion/{version}/{controller}/{action}')

关于如何路由到所需位置的任何想法?另外,请随时评论我的版本控制方法。我欢迎您的建议。

【问题讨论】:

    标签: python api routing versioning pylons


    【解决方案1】:

    Routes 看到的第一件事是 URL(这也是 connect 的第一个参数)。 您正在尝试使用像 /v1/clientAPI/get/ 这样的 URL 访问 API,但是您已经使用像 /APIVersion/{version}/{controller}/{action} 这样的路由配置了您的 routing.py。所以没有匹配。
    最简单的“修复”是使用 URL,例如 http://mySite/APIVersion/v1/clientAPI/get/ 用于 v1 或 http://mySite/APIVersion/v2/clientAPI/get/ 用于 v2 等等(您还需要确保 APIVersion 和所有 v1 到 vX 都是包 + 每个 @987654327 中的控制器类@ 称为 ClientapiController)。
    如果这不是一个选项(因为您仍然想使用像 /v1/clientAPI/get/ 这样的 URL,但拥有像 /APIVersion/v1/clientAPI/get/ 这样的控制器目录布局),那么您需要使用类似于列出的 here 的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2015-02-05
      • 2015-10-12
      • 2015-01-24
      • 2016-04-15
      • 2015-05-14
      相关资源
      最近更新 更多