首先我们需要明确一下几个概念:
-
.NET Core WebAPI:一款轻量级的Web开发框架,可以用于构建RESTful风格的Web服务。
-
前后端分离:“前端”指的是用户界面部分,通常使用HTML/CSS/JavaScript等技术实现,“后端”指的是数据处理和服务提供部分,通常使用各种服务器端语言进行开发。
-
配置和部署:我们需要为我们的WebAPI配置相关信息,如连接字符串、文件路径等,并将WebAPI部署到我们的服务器上,以便用户可以访问它。
下面是完整攻略步骤:
配置
- 配置数据库连接字符串
在appsettings.json中添加以下配置:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyWebApi;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
其中,DefaultConnection是我们的连接字符串名称,MyWebApi是我们数据库名称,其他参数根据自己的情况进行修改。
- 配置跨域访问
在Startup.cs文件中添加以下代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials().Build());
});
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseCors("CorsPolicy");
app.UseMvc();
}
注意:如果您只想允许特定的域名访问,可以将AllowAnyOrigin替换为AllowOrigin并填写相应的域名。
部署
接下来我们来部署我们的WebAPI。
- 发布
在Visual Studio中,右键单击项目并选择“发布”。
选择“文件夹”并指定发布路径。然后单击“发布”按钮。
- 配置IIS
在服务器上安装IIS,并在默认网站下创建一个新的子网站。
在子网站的属性中,找到物理路径,并将其设置为发布路径中的文件夹。
在IIS中添加应用程序池,选择.NET Core CLR版本并将其与我们的WebAPI关联。
- 测试
在浏览器中输入我们的网站地址,如果看到“Hello World”字样,说明部署成功。
示例说明
以下是两个示例,可以帮助您更好地理解配置和部署过程。
示例1:在WebAPI项目中使用Swagger UI
在WebAPI项目中,右键单击“依赖项”并选择“管理NuGet程序包”。
搜索“Swashbuckle.AspNetCore”,并在浏览器中打开GitHub页面。
粘贴以下代码到Startup.cs文件中:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
}
重新启动WebAPI项目,然后在浏览器中访问“/swagger”,您将看到Swagger UI页面。
示例2:在WebAPI项目中使用JWT身份验证
在WebAPI项目中,右键单击“依赖项”并选择“管理NuGet程序包”。
搜索“Microsoft.AspNetCore.Authentication.JwtBearer”,并在浏览器中打开GitHub页面。
粘贴以下代码到Startup.cs文件中:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.RequireHttpsMetadata = false;
options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration.GetSection("Jwt:Key").Value)),
ValidateIssuer = true,
ValidIssuer = Configuration.GetSection("Jwt:Issuer").Value,
ValidateAudience = true,
ValidAudience = Configuration.GetSection("Jwt:Audience").Value,
ClockSkew = TimeSpan.Zero
};
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseAuthentication();
app.UseMvc();
}
在appsettings.json中添加以下配置:
{
"Jwt": {
"Key": "my_secret_key_12345",
"Issuer": "my_issurer",
"Audience": "my_audience"
}
}
这里的Key、Issuer和Audience是您自己选择的参数,可以根据自己的情况进行修改。
然后,您可以在Controller中使用[Authorize]特性来限制需要身份验证的方法。例如:
[Authorize]
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
以上就是“详解.NET Core WebAPI前后端开发分离后的配置和部署”的完整攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解.net core webapi 前后端开发分离后的配置和部署 - Python技术站