欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

我的第一个netcore2.2 api项目搭建(一)

程序员文章站 2022-07-11 08:34:27
上一章快速使用SqlSugar搭建了netcore api项目,我的第一个netcore2.2 api项目搭建(一) 这一章实现目标二:api使用Swagger,实现api文档管理 效果图:第一张收缩,第二张展开,共有2个控制器:values和Account;控制器有注释,api有注释,实体有注释 ......

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

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

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

我的第一个netcore2.2 api项目搭建(一)我的第一个netcore2.2 api项目搭建(一)

 

1.1添加swagger引用

nuget搜索:swashbuckle.aspnetcore,安装

我的第一个netcore2.2 api项目搭建(一)

 

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);
            });
        }

注意这段:

我的第一个netcore2.2 api项目搭建(一)

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

我的第一个netcore2.2 api项目搭建(一)我的第一个netcore2.2 api项目搭建(一)

 

 

 

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

我的第一个netcore2.2 api项目搭建(一)

f5运行

我的第一个netcore2.2 api项目搭建(一)

ok,swagger添加完成。

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

我的第一个netcore2.2 api项目搭建(一)

我的第一个netcore2.2 api项目搭建(一)

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

我的第一个netcore2.2 api项目搭建(一)

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

 我的第一个netcore2.2 api项目搭建(一)

至此,swagger添加完毕