我目前正在使用 WCF Web Api 开发的 Api 有问题,这就是问题:
我想将几个资源类注册为服务合同。所以我有一个 RootResource,我可以从中访问 ChildResource1、ChildResource2、ChildResourceN。
本质上,我想要做的是使用以下路由结构执行一系列 http 操作:
- GET / RootResource /{RootResouceId}/ ChildResourceN /{ChildResourceNId} (这将从RootResource中获取第N个ChildResource)
我当前的资源注册:
routes.MapServiceRoute<ChildResource1>("RootResource");
我的操作在资源中注释如下:
[WebGet(UriTemplate = "{RootResouceId}/ChildResource1/{ChildResource1Id}")]
然而这种方法对我来说并不方便,因为我所有的路线都需要有相同的模式,我上面提到的那个。
如果我现在想注册另一个资源,别说 ChildResource2,那么:
routes.MapServiceRoute<ChildResource2>("RootResource");
请注意,基本路由是相同的,而 WCF Web Api 不允许这样做。