【发布时间】:2012-08-30 16:30:49
【问题描述】:
我很想知道其他人是如何处理为他们的 Web API 生成超媒体链接的问题的?具体来说,我正在使用 ASP.NET Web API,并且在让操作返回与超媒体相关的类型或返回资源本身以及让超媒体内容在管道中稍后发生之间左右为难。 也就是说,人们是否倾向于做以下事情:
public Resource<Order> GetOrder(int id) {
return new Resource<Order>() {
Content = new Order(),
Links = new LinkCollection<Order>() { new AddOrderLink(), new UpdateOrderLink()}
}
或者类似的东西
public Order GetOrder(int id) { return new Order(); }
然后在 HttpOperationHandler 或自定义格式化程序或其他东西中添加超媒体链接?
如果方法更像#2,你怎么知道要生成什么链接?只是有一些为所有 Order 对象生成的标准链接集? OrdersController 中各种操作的修饰属性?
【问题讨论】:
-
附录:我已经阅读了 Glenn Block 关于 Web API 中超媒体 (codebetter.com/glennblock/2012/01/08/…) 的帖子,虽然他似乎更喜欢在运行中生成链接(类似于上面的示例 1),但我觉得就像他在结尾提到的“中间件”路线感觉更自然。
-
看看 ammy 在 teched newzealand channel9.msdn.com/Events/TechEd/NewZealand/2013/DEV305 的演示文稿,她的解决方案很有希望用于带有 web api 的超媒体,也可以看看这里的 github 示例代码
标签: c# asp.net-web-api hateoas hypermedia