Skip to content

.NET 8 中的 Api.http 文件

问题说明

在.NET 8项目中创建ASP.NET Core应用程序时,你会注意到项目中自动添加了一个名为Api.http的文件。该文件是.NET 8的新增功能,用于简化API测试过程,其作用包括:

  • 替代常规API测试工具(如Postman)
  • 提供轻量级的内置HTTP请求定义
  • 直接集成到开发环境中减少工具切换

本文解释此文件的作用、工作原理及最佳实践用法,助你高效测试API端点。


Api.http 文件详解

核心功能

.http文件是Visual Studio 2022+为ASP.NET Core API项目提供的专用测试工具:

  • 无需额外配置:创建项目时自动生成
  • 实时测试:直接在VS中发送请求并查看响应
  • 多请求管理:单个文件中可定义多个API端点测试
  • 环境变量支持:灵活管理不同环境的配置

工作原理

http
### Sample GET request
GET https://localhost:7094/api/todos/
Accept: application/json

使用时:

  1. .http文件中定义HTTP请求语法
  2. 点击请求上方的 Send Request 链接
  3. 在Visual Studio内即时显示响应结果

完整使用指南

基础用法

http
### 获取所有待办事项
GET https://localhost:7094/api/todos/
Accept: application/json

### 创建新待办事项
POST https://localhost:7094/api/todos/
Content-Type: application/json

{
  "title": "Buy groceries",
  "completed": false
}

快捷操作

  • 每个请求前用 ### 添加注释标题
  • 右键点击.http文件选择 Set as Default Request File 设为默认

环境变量配置

http
@baseUrl = https://localhost:7094
@token = eyJhbGciOiJIUzI1N...

### 带认证的请求
GET {{baseUrl}}/api/users/
Authorization: Bearer {{token}}

重要注意事项

  1. 确保应用正在运行(dotnet run
  2. 不同环境的URL/凭证使用变量管理
  3. 同步更新文件中的端口号与实际端口一致

高级功能

  1. 文件上传测试

    http
    POST https://localhost:7094/api/upload
    Content-Type: multipart/form-data; boundary=boundary
    
    --boundary
    Content-Disposition: form-data; name="file"; filename="demo.jpg"
    
    < ./demo.jpg
    --boundary--
  2. 响应处理

    http
    @userId = {{login.response.headers.Location}}
    
    ### 使用变量提取值
    GET {{baseUrl}}/api/users/{{userId}}

常见问题解决

请求无响应如何排查

  1. 确认应用运行状态
  2. 检查HTTPS证书有效性
  3. 确保端口号与启动URL匹配

文件未出现怎么做?

在项目中手动添加:

  1. 右键项目 > 添加新项
  2. 搜索 "Http File"
  3. 命名为 Api.http

官方资源推荐


最佳实践建议

  1. 团队协作.http文件提交至版本控制

  2. 测试集管理

    http
    ### 用户API测试集
    # @name login
    POST {{baseUrl}}/login
    Content-Type: application/json
    { "username": "test", "password": "pwd" }
    
    # 使用登录令牌
    GET {{baseUrl}}/profile
    Authorization: Bearer {{login.response.headers.Authorization}}
  3. 结合CI/CD:作为自动化测试的补充用例

此工具可替代常规API客户端75%的操作需求,显著提升开发效率与体验。