ASP.Net Core WebAPI示例创建和配置Swagger

ASP.Net Core Web Api示例项目工程下载

一、创建ASP.NET Core Web API项目

这是创建完成后的目录内容

二、编辑控制器

2.1、查看运行自带的天气预报信息

①查看控制器自带了关于天气预报的信息内容【只有Get方法】信息。

②运行该WebAPI程序

③运行效果

2.2、修改自带的天气预报为值控制器

①修改路由格式为【api/控制器/方法(api/[controller]/[action])】

[Route("api/[controller]/[action]")]

②值控制器包含Get、Post、Put 和 Delete四种方法

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Test_NETCoreWebAPI.Controllers
{
    [ApiController]
    [Route("api/[controller]/[action]")]
    public class ValuesController : ControllerBase
    {

        /// <summary>
        /// 获取文本
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public ActionResult<string> Get()
        {
            string str = $"Hello MyFirst WebAPI!";
            return str;
        }


        /// <summary>
        /// 两数相加
        /// </summary>
        /// <param name="num1"></param>
        /// <param name="num2"></param>
        /// <returns></returns>
        [HttpGet]
        public ActionResult<int> Sum(int num1,int num2)
        {
            return num1 + num2;
        }


        /// <summary>
        /// 两数相减
        /// </summary>
        /// <param name="param">参数</param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult<int> Subtract(Param param)
        {
            int result = param.num1 - param.num2;
            return result;
        }

        //提交
        [HttpPut]
        public ActionResult<string> Submit()
        {
            return "提交资源成功!!!";
        }

        //删除
        [HttpDelete]
        public ActionResult<string> Delete()
        {
            return "删除资源成功";
        }

    }//Class_end

    /// <summary>
    /// 参数
    /// </summary>
    public class Param
    {
        /// <summary>
        /// 第一个数
        /// </summary>
        public int num1 { get; set; }
        /// <summary>
        /// 第二个数
        /// </summary>
        public int num2 { get; set; }
    }

}

③运行配置

运行结果如下:

如果要查看两数相加,则将调试-->启动浏览器内容替换为【api/values/Sum】即可,然后点击Ctrl+S保存,运行结果如下所示:

加上参数如下所示:

至此就完成了基本的Web Api搭建实现。

三、配置Swagger流程

3.1、介绍Swagger

但是基本的Web Api接口测试查看管理不方便,为了方便管理使用Swagger。

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的 Web 服务。

3.2、安装配置Swagger

①在项目中引入【Swashbuckle.AspNetCore】包

②修改【Startup.cs文件】

首先所有引入的命名空间如下:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.IO;
using System.Reflection;

接着在ConfigureServices方法里加入下面的代码,注册Swagger生成器,定义一个文档,设置xml文档的注释路径。

 //配置Swagger
 //注册Swagger生成器,定义一个Swagger 文档
 services.AddSwaggerGen(c =>
 {
     c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
     {
        Version = "v1",
        Title = "接口文档",
        Description = "RESTful API"
      });
     // 为 Swagger 设置xml文档注释路径
     var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
     var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
     c.IncludeXmlComments(xmlPath);
 });

最后在Configure方法里加入下面的代码,启用中间件服务使用生成Swagger和SwaggerUI,将SwaggerUI中的RoutePrefix设为空字符串,这样就能在根节点(http://localhost:port)直接显示SwaggerUI界面。

//启用中间件服务生成Swagger
app.UseSwagger();
//启用中间件服务生成SwaggerUI,指定Swagger JSON终结点
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");
    c.RoutePrefix = string.Empty;//设置根节点访问
});

编辑后Startup.cs完整代码如下:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.IO;
using System.Reflection;

namespace Test_NETCoreWebAPI
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

            //配置Swagger
            //注册Swagger生成器,定义一个Swagger 文档
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
                {
                    Version = "v1",
                    Title = "接口文档",
                    Description = "RESTful API"
                });
                // 为 Swagger 设置xml文档注释路径
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });


            //启用中间件服务生成Swagger
            app.UseSwagger();
            //启用中间件服务生成SwaggerUI,指定Swagger JSON终结点
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");
                c.RoutePrefix = string.Empty;//设置根节点访问
            });

           
        }



    }//Class_end
}

 ④配置项目属性的生成和调试内容

 

⑤运行程序查看效果

3.3、使用Swagger

①打开第一个方法,点击Try it out按钮

②这个是无参的方法,直接点击Execute执行

③执行后可以看到Response body返回的内容

同样点击第二个方法,给出两个参数,输入执行,得到返回结果

同样 第三个方法的参数是model,要传递json格式的,默认已经生成好了,我们只需要编辑改一下值,再执行就行了。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在IIS上部署ASP.NET Core Web API项目及Swagger可以按照以下步骤进行: 1. 首先,我们需要确保已经在本地系统上安装了ASP.NET Core Runtime和ASP.NET Core Hosting Bundle,以便在IIS中运行ASP.NET Core应用程序。 2. 在Visual Studio中,打开你的ASP.NET Core Web API项目。确保项目已经设置为IIS Express作为本地开发服务器。 3. 在项目根目录下的`Properties`文件夹中找到`launchsettings.json`文件,检查并确保该文件中已经配置了`applicationUrl`为`http://localhost:{port}/`,其中`port`为你希望的端口号。 4. 在Visual Studio的顶部菜单中,找到 `Build` -> `Publish {YourProjectName}`,选择发布目标为`Folder`,点击 `Publish`。 5. 在弹出的窗口中选择一个输出文件夹,用于存储发布项目的文件。 6. 打开发布文件夹,在该文件夹中应该有一个名为`web.config`的文件。双击打开该文件,确保其中有以下代码片段: ```xml <aspNetCore processPath="dotnet" arguments=".\{YourProjectName}.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" /> ``` 7. 打开IIS管理器,右键点击`Sites`节点,选择`Add Website`。填写网站名称以及物理路径为刚刚发布项目的目录。 8. 对于应用程序池,选择一个合适的.NET CLR版本和托管管道模式(例如:.NET CLR版本为No Managed Code,托管管道模式为集成)。 9. 在网站的右侧,找到`Authentication`,禁用匿名身份验证并启用Windows身份验证。 10. 重新启动IIS。 11. 现在,我们可以在浏览器中访问`http://localhost:{port}`,应该能够看到你的ASP.NET Core Web API已经在IIS上成功部署。 12. 最后,要在部署的项目中添加Swagger,可以通过NuGet包管理器,添加`Swashbuckle.AspNetCore`包。 13. 在`Startup.cs`文件的`ConfigureServices`方法中,添加以下配置: ```csharp services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" }); }); ``` 14. 在`Startup.cs`文件的`Configure`方法中,添加以下代码: ```csharp app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"); }); ``` 15. 重新发布并重新启动IIS,现在你的ASP.NET Core Web API应该在IIS上部署并且通过Swagger可以浏览和调用你的API接口。 以上就是在IIS上部署ASP.NET Core Web API项目及Swagger的步骤。请注意,确保按照正确的顺序执行每一步,并根据自己的项目配置进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值