Asp.Net WebApi swagger使用教程

swagger简介

别名:丝袜哥

功能:用于生产api文档

swagger安装

Nuget搜索swagger,然后安装Swashbuckle

swagger使用

生成api的xml文档

webapi项目右键——属性——生产——输出

汉化Swagger

新建一个js,目录/Scripts/Swagger/swagger_lang.js,属性设置为[嵌入的资源]

设置Swagger

修改/App_Start/SwaggerConfig.cs,注意xml地

using System.Web.Http;
using WebActivatorEx;
using cms.WebApi;
using Swashbuckle.Application;

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

namespace cms.WebApi
{
    public class SwaggerConfig
    {
        public static void Register()
        {
            var thisAssembly = typeof(SwaggerConfig).Assembly;

            GlobalConfiguration.Configuration
                .EnableSwagger(c =>
                {
                    c.SingleApiVersion("v1", "cms.WebApi");
                    c.IncludeXmlComments(string.Format("{0}/App_Data/cms.WebApi.XML", System.AppDomain.CurrentDomain.BaseDirectory));//设置xml地址
                })
                .EnableSwaggerUi(c =>
                {
                    c.DocumentTitle("My webapi");
                    c.InjectJavaScript(thisAssembly, "cms.WebApi.Scripts.Swagger.swagger_lang.js");//汉化js
                });
        }
    }
}

控制器

// GET api/values
        /// <summary>
        /// get请求1
        /// </summary>
        /// <returns></returns>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        /// <summary>
        /// get请求2
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public string Get(int id)
        {
            return "value";
        }

 

运行测试

访问地址:http://localhost:30022/swagger/

注意:刚开始我的webapi和mvc在一个项目中,导致汉化失败,汉化js路径找不到。然后把webapi单独一个项目后正常了,坑啊!!!

end

posted @ 2019-03-15 16:24  WebApi  阅读(8618)  评论(2编辑  收藏  举报
CopyRight © 博客园 WebAPI