当前位置:首页 > 行业动态 > 正文

c# api写法

csharp,public IActionResult GetData() { return Ok(new { message = "Hello, API!" }); },

C# 是一种功能强大的编程语言,常用于开发各种类型的应用程序,包括桌面应用、Web 应用和移动应用等,在 C#中,编写 API(应用程序编程接口)是一项常见的任务,它允许不同的软件组件之间进行交互,以下是关于如何用 C# 编写 API 的详细步骤:

一、准备工作

1、安装开发环境

安装 Visual Studio:Visual Studio 是微软推出的一款强大的集成开发环境(IDE),支持 C# 开发,可以从微软官方网站下载最新版本的 Visual Studio,并按照安装向导进行安装。

安装 .NET SDK:.NET SDK 是开发 .NET 应用程序所需的软件开发工具包,包含了编译器、运行时和其他工具,可以在 [.NET 官方网站](https://dotnet.microsoft.com/download)上下载适合操作系统的 .NET SDK 版本,并完成安装。

2、创建项目

打开 Visual Studio:启动 Visual Studio 后,点击 “创建新项目”。

选择项目模板:在弹出的 “创建新项目” 对话框中,选择 “ASP.NET Core Web API” 项目模板,如果你使用的是较新的 Visual Studio 版本,可能会看到 “Blazor App” 或 “Razor Pages” 等模板,也可以选择这些模板来创建 Web API 项目。

配置项目:输入项目名称、解决方案名称和项目保存位置等信息,然后点击 “下一步”,在 “框架” 选项中,选择适合的 .NET 版本,如 .NET 6 或 .NET 7 等,继续点击 “创建”。

二、定义模型

1、创建模型类

在解决方案资源管理器中,右键点击项目名称,选择 “添加”->“新建项”。

在弹出的 “添加新项” 对话框中,选择 “类” 模板,命名为 “Models”(Product.cs),然后点击 “添加”。

在 Models 类文件中,定义与业务逻辑相关的属性和方法,如果要创建一个产品 API,可以定义一个 Product 类,包含产品 ID、名称、价格等属性:

    namespace YourNamespace.Models
    {
        public class Product
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public decimal Price { get; set; }
        }
    }

三、创建控制器

1、添加控制器类

再次右键点击项目名称,选择 “添加”->“新建项”。

在 “添加新项” 对话框中,选择 “控制器” 模板,命名为 “ProductsController.cs”,然后点击 “添加”。

在控制器类中,继承自ControllerBase 类,并使用[ApiController] 特性标记该类,使其成为一个 API 控制器。

    using Microsoft.AspNetCore.Mvc;
    using YourNamespace.Models;
    namespace YourNamespace.Controllers
    {
        [ApiController]
        [Route("api/[controller]")]
        public class ProductsController : ControllerBase
        {
            // 在这里实现控制器的方法
        }
    }

2、实现 CRUD 操作方法

获取所有产品:使用[HttpGet] 特性标记一个方法,该方法将返回所有产品的列表,可以使用内存中的集合或从数据库中获取数据。

    [HttpGet]
    public IEnumerable<Product> GetAllProducts()
    {
        var products = new List<Product>
        {
            new Product { Id = 1, Name = "Product 1", Price = 10.99m },
            new Product { Id = 2, Name = "Product 2", Price = 15.49m }
            // 添加更多产品
        };
        return products;
    }

根据 ID 获取产品:使用[HttpGet] 特性和一个路由参数来标记一个方法,该方法将根据产品 ID 返回特定的产品信息。

    [HttpGet("{id}")]
    public Product GetProductById(int id)
    {
        var products = new List<Product>
        {
            new Product { Id = 1, Name = "Product 1", Price = 10.99m },
            new Product { Id = 2, Name = "Product 2", Price = 15.49m }
            // 添加更多产品
        };
        return products.FirstOrDefault(p => p.Id == id);
    }

创建产品:使用[HttpPost] 特性标记一个方法,该方法将接受一个产品对象作为请求体,并将其添加到数据存储中。

    [HttpPost]
    public Product CreateProduct([FromBody] Product product)
    {
        // 在这里将产品添加到数据存储中,例如数据库
        return product;
    }

更新产品:使用[HttpPut] 特性标记一个方法,该方法将接受一个产品对象作为请求体,并根据产品 ID 更新对应的产品信息。

    [HttpPut("{id}")]
    public Product UpdateProduct(int id, [FromBody] Product updatedProduct)
    {
        // 在这里更新产品信息,例如在数据库中更新
        updatedProduct.Id = id;
        return updatedProduct;
    }

删除产品:使用[HttpDelete] 特性标记一个方法,该方法将根据产品 ID 删除对应的产品信息。

    [HttpDelete("{id}")]
    public void DeleteProduct(int id)
    {
        // 在这里删除产品,例如从数据库中删除
    }

四、配置路由(可选)

1、默认路由配置

Startup.cs 文件的Configure 方法中,可以使用app.UseEndpoints 方法来配置路由,默认情况下,ASP.NET Core 会自动配置路由,使请求能够正确地路由到相应的控制器和方法。

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }
        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        app.UseAuthorization();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
    }

2、自定义路由配置

如果需要自定义路由,可以在控制器类中使用[Route] 特性来指定路由模板。

    [Route("api/products")]
    public class ProductsController : ControllerBase
    {
        [HttpGet]
        public IEnumerable<Product> GetAllProducts()
        {
            // ...
        }
        // 其他方法...
    }

这样,当客户端发送GET /api/products 请求时,将会调用GetAllProducts 方法,同样地,可以使用[Route("api/products/{id}")] 来为其他方法指定路由。

五、运行和测试 API

1、运行项目

在 Visual Studio 中,按下 “F5” 键或点击工具栏上的 “启动调试” 按钮来运行项目,ASP.NET Core 开发服务器将启动,并在浏览器中打开默认页面,这个页面不会显示太多有用的信息,因为我们主要关注的是 API 端点,可以通过访问https://localhost:<port>/swagger(其中<port> 是开发服务器分配的端口号)来查看 API 文档和测试 API,Swagger 是一个流行的 API 文档生成工具,它可以自动根据控制器中的注释生成交互式的 API 文档。

2、测试 API

使用 Postman、Insomnia 等 API 测试工具来发送 HTTP 请求到我们的 API 端点,并验证返回的结果是否符合预期,可以发送一个GET /api/products 请求来获取所有产品的列表,或者发送一个POST /api/products 请求来创建一个新产品,在测试过程中,注意检查请求和响应的状态码、头部信息和正文内容是否正确。

0