【问题标题】:Web Api Versioning for multi tenant saas application多租户 SaaS 应用程序的 Web Api 版本控制
【发布时间】:2014-09-17 04:22:06
【问题描述】:

我目前使用 asp web api 开发一个多租户 saas 应用程序。该 api 将由 3rd 方应用程序发布和使用。我的问题是关于版本控制。我正在努力寻找一种构建 api 的方法,以便当我更新 api 时,它不会使使用 api 的第 3 方应用程序停止工作。我见过很多 api 将版本号附加到 url 中。但这意味着我必须保留旧版本的 api,直到所有 3rd 方应用程序都升级并使用最新的 api。我还必须更新旧的 api 以适应数据库的变化。这似乎是很多工作。大公司如何解决这个问题?

【问题讨论】:

    标签: asp.net-web-api multi-tenant saas


    【解决方案1】:

    解决这个问题没有简单的方法;只要您的客户使用旧版本,您就必须努力支持旧版本。

    首先采用 RESTful 方法并避免使用“胖控制器”可能有助于减轻痛苦,但除此之外,每个旧 API 调用都需要调用新的服务层,并且需要以您的格式返回结果客户期望。

    【讨论】:

    • 抱歉回复晚了。我想我必须使控制器尽可能薄,并且仅在一定时间内限制对 api 的支持。
    【解决方案2】:

    我正在努力寻找构建 api 的方法,以便在我更新 api 时,它不会使使用 api 的第 3 方应用程序停止工作。我见过很多 api 将版本号附加到 url 中。但这意味着我必须保留旧版本的 api,直到所有 3rd 方应用程序都升级并使用最新的 api。

    没有人,绝对没有人比 NetFlix 更深入地研究、构建、版本控制和维护 API——不是在外部,而是在内部。他们在其 API 中使用显式版本控制(例如 URL)并维护同一 API 的多个版本,并通过提供激励措施(新功能)让他们的客户继续前进。这也可以内置到您的 SLA 中,例如您保证仅支持特定版本 12 个月。

    这是一个非常有争议的话题,您会听到有人建议隐式版本控制(例如,通过媒体类型等)。随意听那些,但实用主义偏爱明确而纯粹主义偏爱含蓄。

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 2014-07-27
      • 2020-08-01
      • 2012-05-17
      • 2012-04-10
      • 1970-01-01
      • 2013-04-23
      • 2011-09-28
      • 1970-01-01
      相关资源
      最近更新 更多