zoukankan      html  css  js  c++  java
  • c# webapi swagger

    如何配置swagger?

    在使用项目中,我们希望去查看我们的webapi的测试,那么我们是需要去有一个集成的测试的。

    步骤

    1.在nutget管理包中下载swagger包。

    2.这样会在App_start 文件夹中出现swaggerconfig.cs 和swaggerNet.cs,
    这个时候就需要配置的时候了。

    3.取消下面的注释(swaggerconfig.cs)

     c.IncludeXmlComments(string.Format("{0}/bin/ThinkingSpace.XML", System.AppDomain.CurrentDomain.BaseDirectory));
    

    当然我们为了代码的模块化,可以封装到一个方法中:

    private static string GetXmlCommentsPath()
    {
        return $@"{System.AppDomain.CurrentDomain.BaseDirectory}inGetDocumentation.XML";
    }
    

    好吧,ok,我们知道了这个配置了。

    那么我们需要再bin目录下创建一个xml,推荐是项目名.xml.

    4.那么接下来就是swaggerNet.cs配置.

    using System;
    using System.IO;
    using System.Web;
    using System.Web.Http;
    using System.Web.Http.Description;
    using System.Web.Http.Dispatcher;
    using System.Web.Routing;
    using Swagger.Net;
    
    [assembly: WebActivator.PreApplicationStartMethod(typeof(ThinkingSpace.App_Start.SwaggerNet), "PreStart")]
    [assembly: WebActivator.PostApplicationStartMethod(typeof(ThinkingSpace.App_Start.SwaggerNet), "PostStart")]
    namespace ThinkingSpace.App_Start 
    {
        public static class SwaggerNet 
        {
            public static void PreStart() 
            {
                RouteTable.Routes.MapHttpRoute(
                    name: "SwaggerApi",
                    routeTemplate: "api/docs/{controller}",
                    defaults: new { swagger = true }
                );            
            }
            
            public static void PostStart() 
            {
                var config = GlobalConfiguration.Configuration;
    
                config.Filters.Add(new SwaggerActionFilter());
                
                try
                {
                    config.Services.Replace(typeof(IDocumentationProvider),
                        new XmlCommentDocumentationProvider(HttpContext.Current.Server.MapPath("~/bin/ThinkingSpace.XML")));
                }
                catch (FileNotFoundException)
                {
                    throw new Exception("Please enable "XML documentation file" in project properties with default (bin\ThinkingSpace.XML) value or edit value in App_Start\SwaggerNet.cs");
                }
            }
        }
    }
    

    统一我们需要修改xml的位置即可。

    注意

    我们需要在webapi中只能存在一个get,否则会报错,因为需要符合restful 标准。

    一个controller中只能有一个HttpGet请求,多了就会报错。建议减少重载方法,将其他Get方法分开

    如果在swagger.config中加上c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());则会只显示第一个get方法

    另:可以不安装swagger ui for .net,安了有可能会报错

  • 相关阅读:
    2020年目标检测大盘点 | ECCV大盘点(附论文&代码下载)
    Transformer再下一城!low-level多个任务榜首被占领,北大华为等联合提出预训练模型IPT
    opencv------->>>>>>打印点
    生信工具
    生物信息学练习1-综合使用软件-2
    生物信息学练习1-综合使用软件
    操作指南之下载数据
    安装生物信息学软件-HUMAnN2
    多样性指数介绍
    统计学基础知识-欧式距离与其他
  • 原文地址:https://www.cnblogs.com/aoximin/p/13195735.html
Copyright © 2011-2022 走看看