上一章快速使用sqlsugar搭建了netcore api项目,我的第一个netcore2.2 api项目搭建(一)

这一章实现目标二:api使用swagger,实现api文档管理

 效果图:第一张收缩,第二张展开,共有2个控制器:values和account;控制器有注释,api有注释,实体有注释

 

1.1添加swagger引用

nuget搜索:swashbuckle.aspnetcore,安装

 

1.2在startup中注册swagger

public void configureservices(iservicecollection services)
        {
            services.addmvc().setcompatibilityversion(compatibilityversion.version_2_2);

            //添加api管理
            // register the swagger generator, defining 1 or more swagger documents
            services.addswaggergen(options =>
            {
                options.swaggerdoc("v1", new info
                {
                    //version = "v1",
                    title = "myfirst api",//" api",
                    //description = "",
                    //termsofservice = "none",
                    //contact = new contact
                    //{
                    //    name = "",
                    //    email = string.empty,
                    //    url = ""
                    //},
                    //license = new license
                    //{
                    //    name = "use under licx",
                    //    url = ""
                    //}
                });

                // set the comments path for the swagger json and ui.
                var xmlfile = $"{assembly.getexecutingassembly().getname().name}.xml";
                var xmlpath = path.combine(appcontext.basedirectory, xmlfile);
                options.includexmlcomments(xmlpath, true);
                xmlpath = path.combine(appcontext.basedirectory, "jh.opemr.model.xml");
                options.includexmlcomments(xmlpath, true);
            });
        }

注意这段:

这段代码是添加注释,如果有多个文件注释,只要逐个添加就好了,不建议将xml合并,并且这个需要项目生成相应xml

 

 

 

1.3在configure中启用swagger

public void configure(iapplicationbuilder app, ihostingenvironment env)
        {
            if (env.isdevelopment())
            {
                app.usedeveloperexceptionpage();
            }

            //启用swagger
            // enable middleware to serve generated swagger as a json endpoint.
            app.useswagger();
            // enable middleware to serve swagger-ui (html, js, css, etc.), 
            // specifying the swagger json endpoint.
            app.useswaggerui(options =>
            {
                options.swaggerendpoint("/swagger/v1/swagger.json", "my api v1");

            });

            app.usemvc();
        }

 

 f5运行之前将启动页改成swagger

f5运行

ok,swagger添加完成。

but,我尝试添加了一个getusers方法。。。

swagger失败,该死api路由,很不好理解,还是改成这样吧

f5,变成这样,直观多了。。。

 

至此,swagger添加完毕