【问题标题】:Versioning a TastyPie Api with the Accept header使用 Accept 标头对 TastyPie Api 进行版本控制
【发布时间】:2012-02-25 01:51:28
【问题描述】:

我并不是想发起一场宗教战争,但我个人真的不喜欢资源 URL 中的 api 版本信息。我认为最好的方法是通过资源的 Accept 标头或将 ?version=2 添加到查询字符串中。如果你对这个话题感到好奇。 StackOverflow 上有许多关于该主题的好(充满激情的)帖子。这是一个很好的thread here。另外,恕我直言,Steve Klabnik 写的一篇很好的博文here。同样,这些只是我的偏好,我不想(再次)尝试创建关于这个主题的线程。

我目前正在寻找一个 Django 包来帮助创建一个 RESTful API。经过一番阅读,TastyPie 似乎拥有我想要/需要的大部分内容,并且得到了很好的支持(并且有非常好的文档)。我只是想知道是否有办法实现不同的版本控制方案?有没有其他人做过这个?是否有其他软件包可以按我想要的方式工作?

【问题讨论】:

  • 我想你可以用 Tastypie 做到这一点。我最近实现了 ?filter= 支持以避免将属性直接放入查询字符串中。此外,我首先使用 Piston 实现了我的 API,然后转向 Tastypie,我更喜欢它。它更加健壮和灵活。所以我个人的倾向是 Tastypie 目前是用 Django 构建 RESTful API 的最佳工具(但我也不想挑起战争;))。

标签: python django rest tastypie


【解决方案1】:

是的,您可以使用 Accept 标头或任何其他方法来对您的 API 进行版本控制,并以不特定于您使用的任何 Django API 包的方式执行此操作。一种简单的方法是添加一些中间件来检查相关请求的标头,然后根据指定的版本加载适当的 URL conf。

github上有几个使用URL routing middleware的简单应用程序,您可以自定义以满足您的需求。

此外,Tastypie 非常棒,我强烈推荐它而不是活塞。

【讨论】:

    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2018-02-21
    • 2019-07-07
    • 2018-09-26
    • 1970-01-01
    相关资源
    最近更新 更多