【发布时间】:2016-03-21 13:50:15
【问题描述】:
我想知道是否有任何好的技术可以让您的 WebAPI 控制器路由与客户端保持同步。
例如,您有一个 WebAPI 控制器 BooksController。在客户端,您可以通过调用端点来调用方法:
$.get('books/1');
然后有一天你决定重命名控制器,或者添加一个 RoutePrefix。这会破坏客户端代码,因为端点已更改。
我遇到了图书馆WebApiProxy,看起来很有趣。有没有人有解决这个问题的好方法?是否有理由在我可能忽略的客户端上使用字符串文字?
【问题讨论】:
-
你在客户端使用什么库?
-
香草JS。有没有图书馆可以让这个更干净?
-
嗯,我认为使用一些根据 Web API 实现生成一些 js 代理的魔术库不是很好,从我的角度来看,最好控制正在发生的事情。也就是说,我的建议是在客户端也有路由配置,比如使用requirejs,你可以调用require.toUrl('books/1'),根据requirejs配置此网址可以替换为实际网址,例如“localhost/mywebaby/books/1”。如果 Web API 发生变化,您可以更改客户端配置。
-
我从未见过 require.toUrl 语法,你有参考链接吗?
-
这里是文档requirejs.org/docs/api.html#modulenotes-urls,requirejs.org/docs/api.html#config-map,但是你可以使用任何其他库,或者自己做 - 使用一些会告诉你真实地址的函数,输入参数到这个函数将是您在 javascript 中使用的路由,并在此方法中(例如使用正则表达式)创建真正的 url
标签: javascript asp.net-web-api asp.net-web-api2