Loopback 4生成了文档,我找到了有关单个查询属性以及如何重命名它们或进行自定义描述的信息。 但我找不到如何装饰控制器标题的任何内容,而不是PingController,而是“我的自定义ping控制器名称”之类的东西。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我们已经实现了一个 webAPI,我们有许多 API 控制器。 我们为我们的 API 提供了一个 API 文档,我们想要做的是从文档中排除某些 Web 方法,但我们希望根据我们正在运行的环境动态完成此操作。 只是为了让您了解我的意思,假设我有以下网络方法
[ApiExplorerSettings(IgnoreApi = true)]
public Product getProduct()
{
...
}
通过将 ApiExplorerSettingAttribute 上的 IgnoreAPI 属性设置为 true,它从文档中排除了我们想要的 web 方法,但我们需要一种动态设置“true”值的方法。 理想情况下,我们希望有一个包含每个 webMethod 的 bool 值的数据库表,并基于这些设置 IgnoreAPi 属性的值。 有没有办法实现这一目标? 您的帮助将不胜感激。
您可以实现自定义IApiExplorer
并将其注册到 Web API 的服务中,以完全控制列出或不列出哪些 API。
这是实现大部分内容的开发人员的博客文章: https : //docs.microsoft.com/en-us/archive/blogs/yaohuang1/asp-net-web-api-introducing-iapiexplorerapiexplorer
这是IApiExplorer
接口定义: http : //msdn.microsoft.com/en-us/library/system.web.http.description.iapiexplorer( IApiExplorer
.aspx
您可以做的一件事是从(或重用现有源)现有的ApiExplorer
实现并调用base
来获取默认列表,然后根据需要进一步过滤它。
根据 s_hewitt 的评论,建议是:
从 ApiExplorer 派生,实现这两个方法 ShouldExploreAction 和 ShouldExploreController 是要走的路。 在这两种方法中进行数据库调用,根据路由、控制器和操作进行查找。
我不太了解 WebAPI 的文档生成,但我知道属性。 属性被编译到代码中,并导致硬编码值直接保存在 EXE 或 DLL 的数据中。 它们无法更改。
话虽如此,您也许可以在正常编译后将属性作为第二组应用。 也许PostSharp可以在这里提供帮助? 也许更改解决方案配置可能是指示您要为其构建的环境以及哪些方法获得 IgnoreApi 处理的一种方式。 您可以创建自己的属性以应用于描述该方法应在哪些环境中被忽略的方法。 (我认为,如果您不尝试调用数据库来获取这些数据,则更有可能在 PostSharp 中执行您想要的操作。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.