产品推广 试图解决 “接口在我这里 ok, 为啥到你这就不行了!” 的对接问题

jicheng1014 · 2022年03月28日 · 最后由 forecho 回复于 2022年06月02日 · 967 次阅读

TLDR

(VUE + Rails 实现的)NUAPI (www.nuapi.com) 的 域名转发可以辅助解决这类 “接口在我这里 ok, 为啥到你这就不行了” 问题。

我们做了一个简单的视频, 可以让你快速了解我们是咋解决的 视频地址

如果你想试用一下 NUAPI www.nuapi.com , 可以用这个邀请码注册 RUBYDOMAIN

另外 NUAPI 也有个不错的 端口转发 的功能可以参考这篇帖子 [内网穿透调试] 使用 NUAPI, 0 安装, 5 秒钟拥有线上地址调试本地端口

正文

在我们软件开发的时候, 前后端经常遇到的问题是 后端自信的发布到测试环境后, 自己测试是没有任何问题的, 但是一旦到了前端测试的时候, 就遇到了各种各样的问题。

我这说几个常见的问题:

  • 经常遇到的前端传参数与预期不同的问题
  • 经常遇到的后端接口返回值与预期不同的问题

这些问题本质上来说解决起来比起技术角度,更多的都是所谓的 “繁琐”。要找个大家都 ok 的时间, 把涉及到的人拉过来说明问题, 再等他们解决, 这是十分拖沓的。万一中途出了啥问题, 或者本身与某些人有过节,那简直是一场灾难。

其实我们转过头来想, 这些问题,是不是可以通过一些技术手段来解决?

我们最近研发了 www.nuapi.com , 这里面的功能"域名转发" 可以较好的解决这些问题:

NUAPI 的域名转发原理

传统上,我们的访问 如下图所示

传统访问流程

我们可以将 API 服务器 做一次 域名转发, 即 变为以下的访问流程

 NUAPI 域名转发访问流程

此时, nuapi 即可将访问的请求内容, 以及 API 服务器的返回接口, 均记录下来, 并且可以记录下来的请求的日志。

如何使用

首先在 NUAPI 中新建域名转发, 假设我的后端域名地址是 https://api.github.com

则我可以在 NUAPI 中的新建域名转发中填写

https://api.github.com/

20220324171829

创建完毕后, NUAPI 会返回代理域名

20220324171910

点击域名, 即可进入日志模式

20220324171949

我们会记录所有经过 nuapi 域名转发的所有请求, 以及请求后返回的 body。这时, 如果我们想看看到底请求了什么内容, 则可以直接登录 nuapi.com 系统 进行查看。

NUAPI 查看请求的 body 以及 返回的 body

这里还有一篇文章可以供大家参考 抓包工具 Charles 与 Nuapi 对比, 替代 Charles

当然, 知道自己传了数据, 收到了什么数据, 可以推测出可能出现的问题在哪里, 那有没有更好的方式来解决 “在我这里跑 ok, 为啥在你那不行” 的方案呢?

有的, 就是我们的请求对比功能:

请求对比

经常出现这种问题: 后端用 POSTMAN 访问测试环境, 一切 ok, 前端接入后, "请求跟 postman 一模一样,但是返回死活报错!“

此时我们可以用 NUAPI 的请求对比功能, 查询两者区别:

  1. 首先让后端用 POSTMAN, 将请求的 URL 的域名替换为 NUAPI 的转发域名,再次发送请求
  2. 让前端或者 app 端, 进行相关操作 引起对应的 请求
  3. www.nuapi.com 中找到这两次请求, 之后点击 加入对比, nuapi 就会将两次请求的所有信息进行一一对比, 不同的内容我们就会立即显示出来

这样, 就可以轻易的看出, 这两个请求是否一样, 如果不一样, 是哪些内容部一样了 请求的对比

分享

当我们想把一条请求记录分享给其他人的时候, 只需要生成一个简单的链接即可, 不需要查看的人强制注册 NUAPI 用户, 仅拥有 URL 地址即可访问:

20220328005414

当使用分享链接打开地址的时候, 他会看到类似这样的界面, 此界面无需 NUAPI 即可查看

20220328005641

这样, 你可以轻松的将你认为有问题的请求, 发送给你的前端或后端。 这个分享详细的描绘了整个请求: 从请求的时间, 到请求的 header 参数, body 参数, 以及服务器返回的 header 和 body。

结束语

NUAPI 是一个致力于帮助开发人员解决在开发测试的时候遇到的各种问题(包括内网访问、数据对比, mock 请求)的工具, 希望通过我们的这个产品, 能够为大家的开发期间的沟通带来顺滑的体验。欢迎大家试用, 目前 NUAPI www.nuapi.com 处在试用阶段, 所有功能均为免费, 大家可以使用 邀请码 RUBYDOMAIN 注试用, 有任何意见或建议可以在本贴留言,我将持续关注。

NUAPI www.nuapi.com 的技术栈为 前端 Vue3.2, 后端 Ruby on Rails + 少量 Node , 使用 K8S 部署在阿里云上。也欢迎大家交流技术实现部分的问题。

1 楼 已删除

产品是个好产品,不过用户还需要注意使用测试认证信息,上线后及时更换。

pynix 回复

是的 我们倒是做了个 301 但是感觉可能很多地方不兼容 POST 301 的处理吧

jicheng1014 回复

试试 308 Permanent Redirect ?

xinyifly 回复

老哥地址填写的是 http 而网站是碰到 http 会跳转拿到 https 的? 在帮助文档里有个群 可以加进去下 咨询

给程序员用的?能赚到钱?

xianyuit 回复

😂 目前还没有

生成的 curl 语法不是很兼容,只能分享才能生成 curl?

取代 Charlic 这个我觉得很有价值,但是"请求跟 postman 一模一样,但是返回死活报错!“这个我感触不深,似乎基于 openapi,共用一套接口准则,不太会发生。另外一点,openapi diff 我觉得还是有价值的,不过这个有开源的方案,我们也落地使用了

forward host visit failure: Net::ReadTimeout with #TCPSocket:closed)( 是啥问题?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号