介绍
在这篇文章中,我们将了解 .NET Core 并使用测试存储库创建 API 应用程序。
关于.NET Core
.NET Core 是适用于 Windows、Linux 和 macOS 操作系统的免费开源托管计算机软件框架。它是跨平台的继承者。网络框架。
基本上,这些是基于项目类型和托管方法的控制台应用程序。它将有额外的组件。
主要特点
支持跨平台 – 在 Windows、macOS 和 Linux 上运行。
微软支持的开源项目。
通过 .NET 标准与现有的 .NET Framework、Mono 和 Xamarin 兼容。
创建 .NET 核心应用程序
先决条件
Visual Studio 2019(任何版本)。
.NET Core 3 或更高版本。
通过选择以下项目模板,在 Visual Studio 中创建一个 .NET 核心空应用程序。我们可以选择“ASP.NET core Web Application”模板。
选择空项目模板,我们稍后会添加其他所需的文件和依赖项。
创建项目后,我们可以看到将生成“program.cs”和“startup.cs”文件。这两个文件都有助于启动和加载 .NET 核心所需的模块。它还有助于添加 .NET Core 中间件应用程序。
.NET 核心管道/中间件组件类似于旧的 ASP.NET 处理程序和模块组件。例如,.NET 核心管道:诊断、路由和身份验证。
关于 .NET Core 中的开发人员异常页面
在“startup.cs”中,我们编写了以下手动异常代码来抛出错误。
app.UseEndpoints(endpoints =>
{
throw new Exception("Test Exception");
//endpoints.MapGet("/", async context =>
//{
// await context.Response.WriteAsync("Hello World!");
//});
});
如果我们运行该应用程序,我们可以看到以下对开发人员友好的异常页面,该页面将显示错误,
此错误页面由以下代码控制,
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
如果是在开发环境中,我们可以看到上面的页面。我们可以在 Project Properties-> Debug 页面中为我们的核心应用程序设置环境变量,
我们不需要使用“app.UseMvc()”,而是可以在 .NET core 3 以后使用“app.UseRouting()”。否则,我们会得到以下错误:
使用路由创建 API 控制器
我们可以创建“Controllers”文件夹和类文件或API控制器文件,并确保它继承自“ControllerBase”类。我们还添加了有助于访问 API 端点的“ApiController”和“Route”属性。
下面的代码使用基于“约定”的 API 路由。当我们添加新的控制器时,我们不需要更改代码。例如:如果我们有控制器名称“EmployeeController”,并且 API 端点将像“api\employee”一样访问。
app.UseEndpoints(endpoints
{
endpoints.MapControllers();
});
一旦我们使用“api/employee”运行应用程序,GET 端点就会返回测试数据。
将测试添加到 API 端点
我们将添加下面的“员工”测试数据存储库代码来生成测试数据。
public class EmployeeTestRepository : IEmployeeRepository
{
public List<Employee> GetAllEmployee()
{
var rng = new Random();
var employesData = Enumerable.Range(1, 5).Select(index => new Employee
{
EmployeeId = rng.Next(-20, 55),
Email = "Test" + rng.Next(-20, 55) + "@test.com",
EmployeeName = "Test Name" + rng.Next(-20, 55),
Skill = "Test Skill" + rng.Next(-20, 55)
})
.ToList();
return employesData;
}
}
在 Employee 控制器中注入“EmployeeRepository”。在 startup.cs 文件中添加存储库注入。
services.AddScoped<IEmployeeRepository, EmployeeTestRepository>();
添加以下代码以供参考:
Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddScoped<IEmployeeRepository, EmployeeTestRepository>();
}
// 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.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
EmployeeController.cs
[ApiController]
[Route("api/[controller]")]
public class EmployeeController : ControllerBase
{
private readonly ILogger<EmployeeController> _logger;
private readonly IEmployeeRepository _employeeRepository;
public EmployeeController(ILogger<EmployeeController> logger, IEmployeeRepository employeeRepository)
{
_logger = logger;
_employeeRepository = employeeRepository;
}
// GET: api/<controller>
[HttpGet]
public List<Employee> Get()
{
return GetEmployees();
}
private List<Employee> GetEmployees()
{
return _employeeRepository.GetAllEmployee();
}
}
运行应用程序以查看示例数据:
概括
在这篇文章中,我们了解了 .NET core 并使用测试数据创建了一个 API 应用程序。
常见问题FAQ
程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!