Tej*_*ora 4 c# api rest version wrapper
我编写了一个C#包装器来支持我们公司项目的REST API.但是,这些API现在正在发生变化 - 就URL而言(可能会在URL中引入版本号)和它期望的数据对象并返回.
我想知道在我的c#wrapper中支持不同版本的REST API的最佳做法是什么.
我应该如何做 - 在代码设计和类定义方面 - 以便一个包装器可以与不同版本的API无缝协作 - 并且它也应该是可扩展的 - 以便将来可以轻松支持任何更新版本的API .
我编写的c#包装器正在使用我们的Web服务API.我已经在使用RestSharp客户端在c#wrapper中使用我们的Web服务API.
你要问的是一种微妙的怪异.让我重申你所说的话:
1)您的组织有多个版本的同一服务.也许它们像Bob建议的那样建立,/ current/api .../v1/api .../v2/api ...等等或者也许是其他一些模式.
2)您希望单个C#库知道每个不同的版本.
这是第二部分,很奇怪.通常,客户端库仅针对特定版本.服务器有责任确保新版本的服务向后兼容旧版本,或隔离在新的URL上.
问问自己 - 如果你要继续构建这个知道同一服务的多个版本的库,它对你的库的消费者有什么看法?他们是否必须明确告诉您使用哪个版本?这不是我期望必须注意的问题.
var client = new MyClient();
client.DoSomething(); // Makes sense
client.DoSomethingV2(); // Huh?
Run Code Online (Sandbox Code Playgroud)
设置 API 版本,将当前版本保留为版本 1,然后添加 v2 之类的内容
/current/api?id=x....
/version2/api?id=x...
Run Code Online (Sandbox Code Playgroud)
这允许您更新 API 以支持新功能,然后您可以为过时的版本设置日落计划。
这样您就可以让您的客户转移到您的新系统,而不会出现紧急情况。
| 归档时间: |
|
| 查看次数: |
2221 次 |
| 最近记录: |