阿坝 淄博市 彩票 台北县 潞西市 彩票 句容市 襄城县 永城市 拉萨市 凭祥市 隆昌县 松滋市 安溪县 临泉县 昌黎县
国内 >

贵宾犬_.NET Core和Swagger 生成 Api 文档

标签:枝叶相持 斗地主发牌机作弊

前言

最近写了好多Web api, 老大说太乱了,要整理一下,使用Swagger。
花了半天的时间,在这里记录和分享一些过程和遇到的问题。

遇到的主要问题:
1.localhost:9040/swagger/ not found

2.http://localhost:9040/swagger界面可以打开,但是can"t read json file.

1.引用

这里引用了三个库,都是在Nuget上安装:
1.Microsoft.AspNetCore.StaticFiles, Version="2.0.3" , 这个package提供UI显示相关服务
2.Swashbuckle.AspNetCore, Version="2.4.0"
3.Swashbuckle.AspNetCore.SwaggerUi, Version="2.4.0"

2.打开startup.cs文件

using Swashbuckle.AspNetCore.Swagger;

在ConfigureServices集合中注入AddSwaggerGen:

public void ConfigureServices(IServiceCollection services)
{
   永不磨灭的番号_2018年最新新闻网     services.AddMvc();            

        // Enable CORS
        services.A财经郎眼_2018年最新新闻网ddCors();

        //Inject Swagger 
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info { Title = "MyApi", Version = "v1" });
            // Set the comments path for the Swagger JSON and UI.
            var xmlPath = Path.Combine(AppContext.BaseDirectory, "ChatBotApi.XML");
            c.IncludeXmlComments(xmlPath);
        });
}

在Configure中启用中间件,允许Swagger提供服务生成json文档以及UI:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default"顶级厨师_2018年最新新闻网,
            铁扇公主_2018年最新新闻网    template: "{controller}/{action=Index}/{id?}");
        });

        app.UseStaticFiles();

        // Enable middleware to serve generated Swagger as a JSON endpoint.
        app.UseSwagger(c => { c.RouteTemplate = "swagger/{documentName}/swagger.json"; });

        // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), 
        // specifying the Swagger JSON endpoint.
     天使领域_2018年最新新闻网   app.UseSwaggerUI(c =>
        {
            //c.RoutePrefix = "swagger/ui";
            c.SwaggerEndpoint("v1/swagger.json", "ChatBotApi");
        });
}

3.设置XML注释

在 Visual Studio 中右击项目并且选择 Properties 在 Output Settings 区域下面点击 XML Documentation file 。

这时候编译项目,会出现很多warning,提示api没有注释,在每个Api controller上方,连续输入三个"/",即可将api的对应信息补充完整,要给每个Api route加上 http的请求方式。
在各个Api里加上注释:

/// <summary>
/// Put value by id and value
/// </summary>
/// <param name="id">id</param>
/// <param name="value">value</param>
/// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value)
{
}
        

4.运行结果

1.在浏览器中输入:http://localhost:/swagger/v1/swagger.json

返回Json文档:

用json viewer打开json文件:

2.在浏览器输入:http://localhost:9040/swagger/

到此说明配置Swagger成功。

详细的API列表和文档说明:

5.主要问题的解决办法

1.RoutePrefix
这是个坑,要好好匹配当前的项目路1984_2018年最新新闻网径,不然UI打不开

2.SwaggerEndpoint
这是个坑,也是一样,如果路径匹配错误,UI打开了但是读取json文档失败。

这两个路径配置可以多试几次,我尝试了几十次~~

6.可以自定义UI

这个暂时没有做,今天太晚了,占个位置~

参考文档

1.Get started with Swashbuckle and ASP.NET Core
2.Swagger .NETCORE can"t read json
3.ASP.NET Core 中文文档

当前文章:http://mi8n-weibodenggong-com.xiegaming.cn/ojtu/87352_156812.html

发布时间:2019-09-19 08:42:27

巴菲特被8岁女孩问倒 称是华人女登山家罗静粉  银河娱乐手机版yh163am.com  银河娱乐手机版yh163am.com  澳门银河首页yh163am.com  www.7163.com澳门银河  澳门银河2949所有网址李易峰凌晨发文庆31岁生日 何炅魏大勋等送祝福  银河国际中心游戏厅2018年诺贝尔文学奖取消!历史上曾有7次暂停颁奖  银河娱乐首页yh163am.com  2288银河主站线路检测  银河娱乐官网yh163am.com  

相关文章
推荐图文
最热文章