Cod*_*rer 8 c# model-view-controller asp.net-web-api
我们实现了一个webAPI,我们有许多API控制器.我们为API提供API文档,我们要做的是从文档中排除某些Web方法,但我们希望根据我们运行的环境动态完成.只是为了让你了解我的意思,让我说我有以下网络方法
[ApiExplorerSettings(IgnoreApi = true)]
public Product getProduct()
{
...
}
Run Code Online (Sandbox Code Playgroud)
通过将ApiExplorerSettingAttribute上的IgnoreAPI属性设置为true,它会从文档中排除Web方法,这是我们想要的,但我们需要一种动态设置"true"值的方法.理想情况下,我们希望为每个webMethod创建一个包含bool值的数据库表,并根据这些值设置IgnoreAPi属性的值.有没有办法实现这个目标?非常感谢您的帮助.
Eil*_*lon 12
您可以实现自定义 IApiExplorer并在Web API的服务中注册它,以完全控制列出或未列出的API.
这是来自开发人员的博客文章,其实现了大部分内容:http://blogs.msdn.com/b/yaohuang1/archive/2012/05/13/asp-net-web-api-introducing-iapiexplorer-apiexplorer.aspx
这里是IApiExplorer界面定义:http://msdn.microsoft.com/en-us/library/system.web.http.description.iapiexplorer(v = vs.118).aspx
您可以做的一件事是从现有ApiExplorer实现派生(或重新使用现有源)并调用base以获取默认列表,然后根据需要进一步过滤它.
根据s_hewitt的评论,建议是:
从ApiExplorer派生,实现两个方法ShouldExploreAction和ShouldExploreController是要走的路.使用这两种方法进行数据库调用,根据路由,控制器和操作进行查找.
| 归档时间: |
|
| 查看次数: |
12515 次 |
| 最近记录: |