Swagger界面丑、功能弱怎么破?用Postman增强下就给力了!

在使用Swagger的时候,你是否会有这种感觉:提交参数为JSON没法格式化,参数错了查找麻烦,返回结果没法折叠,太长了没法看!Swagger结合Postman使用后这一情况有很大改变,今天我们来讲下如何使用Postman增强Swagger的功能,希望对大家有所帮助!

Postman使用

Postman是一款非常好用的接口调试工具,界面漂亮且功能强大,对Postman不了解的可以看下《Postman:API接口调试利器》

Swagger结合Postman使用

下面介绍下如何将Swagger API导入到Postman中去,然后使用Postman来调试接口。

Swagger API导入Postman

  • 首先我们需要启动使用了Swagger的应用项目,这里以之前的mall-tiny-swagger项目为例子,找到api-docs路径,访问地址:http://localhost:8088/swagger-ui/

  • 什么是Swagger的api-docs访问路径?该路径会返回JSON格式数据,应用中Swagger渲染API文档页面的所有数据就是来源于此,Postman也是可以通过这些数据来渲染API文档页面,这里的api-docs地址为:http://localhost:8088/v2/api-docs

  • 在postman中点击import按钮,选择Link,输入Swagger的api-docs路径即可将Swagger生成的接口导入到Postman中去了;

  • 直接使用默认选项导入即可,无需修改;

  • 导入成功后,Swagger中的接口就会出现在Postman中了,之后就只需要在Postman中改改参数就可以开始调试接口了,是不是很方便!

Postman设置环境变量

  • 我们随意找个接口访问下,会发现访问出错了,那是因为baseUrl这个环境变量设置有问题,导致了接口无法访问;

  • 我们只要在Postman中设置baseUrl这个环境变量,就可以正常访问了;

  • 添加好环境变量之后,需要选择好环境才会被应用。

访问需要登录认证的接口

  • 这时候再次访问接口会发现我们的接口需要登录认证才能正常访问;

  • 我们可以先调用登录接口来获取Token;

  • 给需要登录认证的接口添加Bearer Token类型的Token,我们可以发现需要配置一个叫token的环境变量;

  • 在环境变量中添加token

  • 添加完环境变量后即可正常访问需要登录认证的接口了。

有何缺点

此种方法使用Postman来调试接口是非常强大的,但是对于文档展示能力有点偏弱。

  • 比如说Swagger中的接口对于请求和返回参数都有非常完善的注释信息;

  • 而在Postman中,这些文档信息得不到体现,Postman毕竟还只是一个接口调试工具。

总结

Swagger和Postman结合使用比较好,Swagger用来看接口文档信息,Postman用于调试,将Swagger中的接口导入到Postman中可以弥补Swagger在接口调试方面的不足。

项目源码地址

https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-swagger

推荐阅读


欢迎关注,点个在看

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
以下是一个使用Swagger描述API接口Web API项目的示例: ```csharp using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; namespace MyWebApi.Controllers { [ApiController] [Route("[controller]")] public class UsersController : ControllerBase { /// <summary> /// 获取所有用户 /// </summary> /// <returns>用户列表</returns> [HttpGet] [ProducesResponseType(typeof(IEnumerable<User>), 200)] public IActionResult GetAllUsers() { return Ok(new List<User> { new User { Id = 1, Name = "Alice" }, new User { Id = 2, Name = "Bob" } }); } /// <summary> /// 获取指定用户 /// </summary> /// <param name="id">用户ID</param> /// <returns>用户信息</returns> [HttpGet("{id}")] [ProducesResponseType(typeof(User), 200)] [ProducesResponseType(404)] public IActionResult GetUser(int id) { var user = new User { Id = id, Name = "Alice" }; if (user == null) { return NotFound(); } return Ok(user); } /// <summary> /// 添加用户 /// </summary> /// <param name="user">用户信息</param> /// <returns>添加结果</returns> [HttpPost] [ProducesResponseType(typeof(User), 201)] [ProducesResponseType(400)] public IActionResult AddUser(User user) { if (user == null) { return BadRequest(); } user.Id = 3; // 模拟分配ID return CreatedAtAction(nameof(GetUser), new { id = user.Id }, user); } /// <summary> /// 更新用户 /// </summary> /// <param name="id">用户ID</param> /// <param name="user">用户信息</param> /// <returns>更新结果</returns> [HttpPut("{id}")] [ProducesResponseType(204)] [ProducesResponseType(400)] [ProducesResponseType(404)] public IActionResult UpdateUser(int id, User user) { if (user == null || user.Id != id) { return BadRequest(); } // 更新用户信息 return NoContent(); } /// <summary> /// 删除用户 /// </summary> /// <param name="id">用户ID</param> /// <returns>删除结果</returns> [HttpDelete("{id}")] [ProducesResponseType(204)] [ProducesResponseType(404)] public IActionResult DeleteUser(int id) { // 删除用户信息 return NoContent(); } } public class User { public int Id { get; set; } public string Name { get; set; } } } ``` 在上面的示例中,我们使用了 `[ApiController]` 和 `[Route]` 特性来定义控制器和路由。其中,`[ApiController]` 告诉 ASP.NET Core 这是一个 Web API 控制器,并使用默认的行为,例如自动模型绑定和验证。`[Route]` 特性指定了控制器的路由前缀。 每个操作方法都有一个 HTTP 动词特性,例如 `[HttpGet]`,指定了该方法对应的 HTTP GET 请求。我们还使用了`[ProducesResponseType]` 特性,用于指定操作方法的返回类型及其 HTTP 状态码。这些信息可以帮助 Swagger 自动生成 API 文档。 在上面的示例中,我们使用了标准的 HTTP 状态码和响应模型。但是,你也可以使用自定义的状态码和响应模型,只需在`[ProducesResponseType]` 特性中指定即可。 当你启用 Swagger 后,你可以在浏览器中访问 `http://localhost:<port>/swagger` 查看自动生成的 API 文档。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值