在我们开发过程中,会遇到一些调用第三方的API,有一些接口的操作实时性不是很高,就有可能是最后完成的时候调用我们的服务,使得我们在本地进行调试就变的非常棘手,我们就需要通过一些软件去代理回调本服务的接口于是就有了本文。
这就是内网穿透技术发挥作用的地方。内网穿透可以使你的本地开发服务器对外可见,从而使远程回调成为可能。在这篇博客中,我将分享我的个人经历。
项目背景
在写一个合同模块的时候,需要继承e签宝的接口,如下图:
当我们需要向用户发起签署之后,我们数据库里面就会自动添加一条待签署的合同展示在我们的平台上面,方便业务人员去查看这个合同的签署情况,但是如果要是用户签署完毕了,就要跟新这条数据的状态为已完成。
但是在开发的过程中调试就变的非常的麻烦,本地开发环境是无法直接被互联网访问,我的在开发环境无法调试
解决方案探索
持续的发布集成
既然在本地无法去被外部服务访问到,那么我部署到公网服务器上不就可以了吗?
基本操作流程就是将自己的回调位置修改为公网服务器上,然后写好代码在请求之后,查看打印的日志,判断代码是否可以正常运行
这样的麻烦之处就在于我们调试完之后就需要重新部署一次,比较繁琐。所以我们就可以使用工具去代理,然后设置好被代理的地址,能成功被回调。
工具选择
市面上的工具其实有很多,这里我就不一一去列举了。我这里选择了cpolar,它有免费版,足够我们去使用做一些外部的简单请求调用。下面讲讲它的使用流程
https://dashboard.cpolar.com/get-started
-
上面是它的官网,作为mac用户可以直接下载压缩包
-
安装的时候可能需要到mac设置里面的安全与设置去同意一下
3. 接着进入解压目录,复制如下图内容配置连接账户
4. 最后直接使用提供的命令(还是在解压的目录)中按照要求启动想要的端口。
出现如下图即为使用成功
然后我们复制到选中的链接,它的地址就会被我们代理到我们服务对应的端口。
使用公网地址进行回调测试
现在,你可以将这个公网地址配置到第三方服务的回调设置中。当第三方服务执行回调时,它会通过 cpolar 的隧道访问你的本地服务器,从而允许你在本地环境中实时测试和调试了。
总结
内网穿透一般是解决本地开发环境中的回调问题中最有效的工具,而选择合适的工具有时候对我们开发也是非常高效的。