WebApi ApiExplorer ApiExplorerSettingsAttribute和IgnoreApi的动作



你可以用ApiExplorerSettingsAttribute修饰控制器或动作方法,设置IgnoreApi属性不生成帮助信息。如果您尝试对操作方法的属性应用相同的方法,则会得到一个错误:

public HttpResponseMessage Post([ApiExplorerSettings(IgnoreApi = true)]HttpRequestMessage request, ... )

错误2属性'ApiExplorerSettings'在此声明类型上无效。它只对'class, method'声明有效。

保持控制器动作可测试的一个常见约定是接受HttpRequestMessage参数,但这是一个实现细节,而不是API消费者应该知道的东西。

如何阻止ApiExplorer在生成帮助页面时包含此参数?

为了清楚…通过这个"if you try to apply the same to an action method's attribute",你的意思是你试图应用到参数?

-一个快速修复将是添加一个额外的检查到现有的CancellationToken检查,我们在这个文件中:AreasHelpPageViewsHelpDisplayTemplatesParameters.cshtml

// Don't show CancellationToken because it's a special parameter
    if (!typeof(CancellationToken).IsAssignableFrom(parameter.ParameterDescriptor.ParameterType))
    {

-此外,您可以避免将HttpRequestMessage作为动作的参数,因为您可以从控制器上的request属性获得当前请求,但您希望它作为测试的参数…是吗?

相关内容

  • 没有找到相关文章

最新更新