C# 是否可以通过Swashbuckle包含端点的方法名?

C# 是否可以通过Swashbuckle包含端点的方法名?,c#,asp.net-web-api,swagger,swashbuckle,C#,Asp.net Web Api,Swagger,Swashbuckle,因此,我试图为一组通过.NETWebAPI创建的旧REST端点添加API文档。有人建议我尝试使用Swashback从现有端点生成文档,这是可行的 我的问题是,这些端点的名称提供了一些上下文,而Swashback似乎只接收控制器,而不是实际的方法名称。例如,我有以下端点: public class CatalogAvailabilityController { public List<string> GetSupportedCatalogsForCountry([FromUri

因此,我试图为一组通过.NETWebAPI创建的旧REST端点添加API文档。有人建议我尝试使用Swashback从现有端点生成文档,这是可行的

我的问题是,这些端点的名称提供了一些上下文,而Swashback似乎只接收控制器,而不是实际的方法名称。例如,我有以下端点:

public class CatalogAvailabilityController
{
    public List<string> GetSupportedCatalogsForCountry([FromUri] string countryCode)
    {
        //--return supported catalogs
    }
}
公共类CatalogAvailabilityController
{
公共列表GetSupportedCatalogsForCountry([FromUri]字符串countryCode)
{
//--返回支持的目录
}
}
在这种情况下,生成的招摇输出如下所示:

基本上,它在URL中只包含控制器名称(CatalogAvailability),但我希望它在URL中也包含“GetSupportedCatalogsForCountry”。有没有办法让Swashback像这样生成它,或者我需要求助于回去,自己创建这个招摇


是的,在理想情况下,它可能不应该像这样设置,它应该更加RESTful,但它是一个旧的遗留系统,需要花费大量的精力来重构,所以我想我应该先问一下。提前谢谢你。

是的!将属性添加到动作中,并将属性路由到控制器中

public class CatalogAvailabilityController
{
    [HttpGet]
    public List<string> GetSupportedCatalogsForCountry([FromUri] string countryCode)
    {
        //--return supported catalogs
    }
}
公共类CatalogAvailabilityController
{
[HttpGet]
公共列表GetSupportedCatalogsForCountry([FromUri]字符串countryCode)
{
//--返回支持的目录
}
}

以下是越狱者的回答:

public class CatalogAvailabilityController
{
    [HttpGet("GetSupportedCatalogsForCountry")]
    public List<string> GetSupportedCatalogsForCountry([FromUri] string countryCode)
    {
         //--return supported catalogs
    }
}
公共类CatalogAvailabilityController
{
[HttpGet(“GetSupportedCatalogsForCountry”)]
公共列表GetSupportedCatalogsForCountry([FromUri]字符串countryCode)
{
//--返回支持的目录
}
}

它这样做不是因为它是该方法定义的端点吗?喜欢因此GET/api/catalogAvailability?countryCode=gb将路由到
GetSupportedCatalogsForCountry
?@LewisTaylor如果控制器中的唯一方法是GetSupportedCatalogsForCountry,那么是的,它将路由到该方法,因为它是唯一的GET。但是,我有多种GET方法。我只在这个问题中包含了一个方法,以使其更简单。在controller/swagger中,另一个方法看起来像什么?它是否仅仅基于以下内容进行路由?类似于:
public List GetSupportedCatalogsForLanguage([FromUri]string languageCode)
我认为这可能是正确的。如果在swagger中展开该框,它是否会显示控制器中多个方法的不同查询参数?