C#中使用swagger小技巧


C#中使用swagger小技巧 

swaggerUI顯示的接口內容主要用於開發階段便於與前端聯調,不適合發布到對外的站點。

有以下兩種方式,讓接口不顯示在SwaggerUI中

1.使用屬性 [ApiExplorerSettings(IgnoreApi = true)]設置接口不顯示到swaggerUI,此方法比較靈活,可以根據情況在對於的控制器或者API接口中添加。

列如:

    [ApiExplorerSettings(IgnoreApi = true)]

    public class SystemController : ApiController

    {   

}

這樣編寫,整個控制器中的接口都不會顯示在swaggerUI,如果只是想針對某個接口不顯示在UI中,可以在接口處增加屬性,列如:

    public class SystemController : ApiController

    {

        [HttpGet]

        [ApiExplorerSettings(IgnoreApi = true)]

        public string GetSystemTime()

        {

            return DateTime.Now.ToString();

        }       

}

我們調試一般都會將編譯類型選擇為Debug,那么可以如下寫:

#if (!DEBUG)

    [ApiExplorerSettings(IgnoreApi = true)]

 #endif

public class SystemController : ApiController

{   

}

這樣開發階段就可以正常的查看swaggerUI,到發布到UAT或者其他環境時,選擇Release類型編譯發布即可。

針對某個接口不顯示在UI中,可以在接口處修改屬性,列如:

    public class SystemController : ApiController

    {

        [HttpGet]

        #if (!DEBUG)

            [ApiExplorerSettings(IgnoreApi = true)]

#endif

        public string GetSystemTime()

        {

            return DateTime.Now.ToString();

      }       

}

 

第二種方式:

就是不加載SwaggerConfig文件,這樣在發布就不會顯示swaggerUI,列如:

#if (DEBUG)

    [assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]

#endif

這樣做的缺點是,接口說明都不顯示了。

可以通過自己的使用情況,選擇合適的方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM