1. 创建项目
- VSCode 打开准备用来存放项目文件夹的文件夹;
- VSCode 中打开终端,运行命令:
dotnet new webapi -o HelloRestful
2. 添加自定义逻辑
- 在解决方案中(Controllers 同级)新建一个 Models 文件夹;
- 在 Models 目录下新建 EmployeeInfo.cs 类,代码如下:
using System; namespace HelloRestful.Controllers { public class EmployeeInfo { public int EmployeeNo { get; set; } public string EmployeeName { get; set; } public int Age { get; set; } public int Sex { get; set; } public string Position { get; set; } public bool IsActive { get; set; } = false; public DateTime CreateDate { get; set; } = DateTime.Now; } }
- 当对话框询问是否要将所需资产添加到项目时,选择“是”。
- 在 Controllers 目录下新建 EmployeeInfoController.cs 类,代码如下:
using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; namespace HelloRestful.Controllers { [Route("api/[controller]")] [ApiController] public class EmployeeInfoController { private List<EmployeeInfo> employeeInfos = new List<EmployeeInfo> { new EmployeeInfo{ EmployeeNo = 1, EmployeeName = "Jack", Age = 21, Sex = 1, Position = "Front-end Development", }, new EmployeeInfo{ EmployeeNo = 2, EmployeeName = "Tom", Age = 23, Sex = 0, Position = "Front-end Development", }, new EmployeeInfo{ EmployeeNo = 3, EmployeeName = "Martin", Age = 22, Sex = 1, Position = ".Net Development", }, }; [HttpGet] public IEnumerable<EmployeeInfo> Get() { return employeeInfos; } } }
3. 配置 IP 地址和 端口号
- 打开 Properties/launchSettings.json 文件;
- 在下图所示处修改 IP 地址和 端口号:
4. 添加允许跨域配置
- 打开 Startup.cs 文件;
- 在 Startup 类中,添加如下变量(位置无所谓,推荐放在构造函数 Startup() 前):
readonly string AllowRequestOrigins = "_allowRequestOrigins";
- 在 Startup 类的 ConfigureServices() 方法中添加允许访问的域,代码如下:
services.AddCors(options => { options.AddPolicy(AllowRequestOrigins, builder => { // 允许访问的域,可添加多个 builder.WithOrigins("http://localhost:9080").AllowAnyHeader().AllowAnyMethod(); }); });
- 在 Startup 类的 Configure() 方法的 app.UseRouting(); 和 app.UseEndpoints(); 之间添加代码如下:
app.UseCors(AllowRequestOrigins);
5. 运行服务,并测试能否正确输出数据
- 在 VSCode 终端中运行命令:
cd HelloRestful dotnet run
回车,输出如下如所示:
- 打开浏览器输入:http://172.22.113.93:10001/api/EmployeeInfo 显示如下:
参考:教程:使用 ASP.NET Core 创建 Web API
.Net Core5 WebAPI + Vue + Axios 搭建一个跨域访问的例子
无法在 macOS 上启动 ASP.NET Core gRPC 应用