您可以使用ApiExplorerSettingsAttribute设置IgnoreApi
属性来修饰控制器或操作方法,以便不生成帮助信息。如果您尝试将相同的内容应用于操作方法的属性,则会出现错误:
public HttpResponseMessage Post([ApiExplorerSettings(IgnoreApi = true)]HttpRequestMessage request, ... )
错误2属性'ApiExplorerSettings'在此声明类型中无效。它仅对“类,方法”声明有效。
保持控制器操作可测试的一般惯例是接受HttpRequestMessage
参数,但这是一个实现细节,而不是API消费者应该知道的内容。
如何在生成帮助页面时阻止ApiExplorer包含此参数?
答案 0 :(得分:1)
为了清楚起见......通过这个“if you try to apply the same to an action method's attribute
”,你的意思是你试图申请参数吗?
- 快速解决方法是对我们在此文件中的现有CancellationToken检查添加额外检查:\Areas\HelpPage\Views\Help\DisplayTemplates\Parameters.cshtml
// Don't show CancellationToken because it's a special parameter
if (!typeof(CancellationToken).IsAssignableFrom(parameter.ParameterDescriptor.ParameterType))
{
- 此外,您可以避免将HttpRequestMessage作为操作参数,因为您可以从控制器上的Request属性获取当前请求,但您希望将其作为测试参数...是吗?