- 开发环境
- 打开VS,建立项目
- 项目结构
- 修改 StartUp 类代码
- ConfigureServices方法
- Configure方法
- 为开发环境和生产环境配置不同的 Startup
- 新建一个Controller
- F5运行
- 完
图文说明,注意流量.
开发环境
- Visual Studio 2019
- .net core 2.x
打开VS,建立项目
继续再建立两个.net core类库项目分别是 ApiStudy.Core
和 ApiStudy.Infrastructure
- 右击解决方案,新建项目.
- 选择 .NetCore类库项目.
- 输入项目名.
- ApiStudy.Core项目建立完成
- 同样的方法再建立ApiStudy.Infrastructrue 项目.
- 完成之后如图
- 然后设置依赖关系
项目结构
一个解决方案下三个项目:
- Xxxx.Core
放一些核心的东西,比如 Entity(实体) 类和一些接口 - Xxxx.Infrastructure
放一些数据库连接之类(DbContext)的和一些服务 - Xxxx.Api
客户端项目
修改 StartUp 类代码
namespace ApiStudy.api
{
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
public class Startup
{
public IConfiguration Configuration { get; }
public StartupDevelopment(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseDeveloperExceptionPage();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
注意, services.AddControllers();
和 endpoints.MapControllers();
方法成对出现, 这是.net core3.0中的最新写法
ConfigureServices方法
用来向容器中注册服务,注册好的服务可以在其他地方进行调用.
Configure方法
为开发环境和生产环境配置不同的 Startup
将 Startup
类修改为 StartupDevelopment
新建 StartupProduction
类
StartupProduction
namespace MyBlog
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public class StartupProduction
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseHttpsRedirection();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
修改 Program类的代码
配置使用的 Startup 类
webBuilder.UseStartup(Assembly.GetExecutingAssembly().GetName().FullName);
netcore会根据这里配置的环境是来选择使用哪个Startup类
Development -> StartupDevelopment
Production -> StartupProduction
新建一个Controller
namespace ApiStudy.Api.Controllers
{
using Microsoft.AspNetCore.Mvc;
[Route("api/[controller]")]
[ApiController]
public class UserController:Controller
{
public IActionResult Get()
{
return Ok("Hello");
}
}
}
修改lauchSetting.json, 删除iis有关的部分, 如下:
{
"profiles": {
"ApiStudy.api": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
F5运行
浏览器访问 https://localhost:5001/api/user