创建 .NET Core API 应用程序

作者 : 慕源网 本文共2895个字,预计阅读时间需要8分钟 发布时间: 2021-10-20 共337人阅读

介绍

在这篇文章中,我们将了解 .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”模板。

创建 .NET Core API 应用程序

创建 .NET Core API 应用程序

选择空项目模板,我们稍后会添加其他所需的文件和依赖项。

创建 .NET Core API 应用程序

创建项目后,我们可以看到将生成“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!");  
                //});  
            });  

如果我们运行该应用程序,我们可以看到以下对开发人员友好的异常页面,该页面将显示错误,

创建 .NET Core API 应用程序

此错误页面由以下代码控制,

if (env.IsDevelopment())  
{  
    app.UseDeveloperExceptionPage();  
}  

如果是在开发环境中,我们可以看到上面的页面。我们可以在 Project Properties-> Debug 页面中为我们的核心应用程序设置环境变量,

创建 .NET Core API 应用程序

我们不需要使用“app.UseMvc()”,而是可以在 .NET core 3 以后使用“app.UseRouting()”。否则,我们会得到以下错误:

创建 .NET Core API 应用程序

使用路由创建 API 控制器

我们可以创建“Controllers”文件夹和类文件或API控制器文件,并确保它继承自“ControllerBase”类。我们还添加了有助于访问 API 端点的“ApiController”和“Route”属性。

创建 .NET Core API 应用程序

下面的代码使用基于“约定”的 API 路由。当我们添加新的控制器时,我们不需要更改代码。例如:如果我们有控制器名称“EmployeeController”,并且 API 端点将像“api\employee”一样访问。

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

一旦我们使用“api/employee”运行应用程序,GET 端点就会返回测试数据。

创建 .NET Core API 应用程序

将测试添加到 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 应用程序

概括

在这篇文章中,我们了解了 .NET core 并使用测试数据创建了一个 API 应用程序。

慕源网 » 创建 .NET Core API 应用程序

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录