Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 指定Swagger记录的API_Asp.net Core_Swagger - Fatal编程技术网

Asp.net core 指定Swagger记录的API

Asp.net core 指定Swagger记录的API,asp.net-core,swagger,Asp.net Core,Swagger,我是一个新的招摇过市者,已经安装并运行了它,但是它获取的API文件远远超出了预期。我一直在寻找一种方法来指定记录了哪个API。您可以在控制器上放置ApiExplorerSettings属性,以将其从Swagger中删除: [ApiExplorerSettings(IgnoreApi = true)] public class TestApiController : ControllerBase { } 如果你想基于某种逻辑在很多控制器上应用它, 例如,可以使用动作模型约定: 该约定添加到Con

我是一个新的招摇过市者,已经安装并运行了它,但是它获取的API文件远远超出了预期。我一直在寻找一种方法来指定记录了哪个API。

您可以在控制器上放置ApiExplorerSettings属性,以将其从Swagger中删除:

[ApiExplorerSettings(IgnoreApi = true)]
public class TestApiController : ControllerBase
{
}
如果你想基于某种逻辑在很多控制器上应用它, 例如,可以使用动作模型约定:

该约定添加到ConfigureServices中,如:

services.AddControllers(o =>
{
    o.Conventions.Add(new ActionHidingConvention());
});

这是可行的,我发现它试图记录每一个控制器,不管它是否是APIController,并且有很多控制器。有没有一种相反的方法来这样做,而不是用该属性标记所有80个控制器,我可以告诉斯威格只记录我想要的一个。尽管如此,你的帖子还是解决了这个问题。谢谢这里可能有一些通过设置或控制器约定的方法。@user174634我添加了一个使用约定的示例。这可能会让你更容易。不错,我花了太多时间寻找现有的属性,很少考虑尝试像这样实现我自己的属性。感谢您的帮助,这很有效。
services.AddControllers(o =>
{
    o.Conventions.Add(new ActionHidingConvention());
});