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

jicheng1014 · March 28, 2022 · Last by forecho replied at June 02, 2022 · 1129 hits

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 Floor has deleted

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

Reply to pynix

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

Reply to jicheng1014

试试 308 Permanent Redirect ?

Reply to xinyifly

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

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

Reply to xianyuit

😂 目前还没有

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

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.