我目前的雇主使用第三方托管的CRM提供商,我们在这两个系统之间有一个相当复杂的集成层。在CRM提供商的功能中,开发人员可以使用Java等语言编写业务逻辑,也可以使用用户单击按钮或向系统提交新账户,验证和/或业务逻辑触发等事件。开发环境和API开发的最佳实践?
我们使用的功能之一是在托管提供程序上运行的业务代码来调用我们托管的Web服务。典型的例子是一个销售代表进入一个新的销售主管,并点击一个按钮来ping我们的系统,看看我们是否能够根据电子邮件地址,公司/名字/姓氏等标识出新的潜在客户,如果是,返回代表该个人的内部GUID。这对我们来说都很好,但我们一次又一次地陷入困境,试图建立一个合理的开发环境来应对。
因此,尽管我们的用例有点细微差别,但它通常适用于为第三方消费构建API的开发室:当您构建API时,设计开发流水线和环境时的一些最佳实践是什么?被外界消耗?
在我们的办公室,我们所有的开发人员都在防火墙后面,因此正在进行的代码不会被外部世界所打击,在我们的例子中是CRM提供商。我们可以在防火墙上打洞,但从安全表面的角度来看,这并不理想。特别是如果需要进入DMZ区的开发人员数量很多。我们目前正在尝试DMZ中的单个开发机器,然后根据需要进行远程开发,以便开发工作,但如果多个开发人员需要使用该机器,则会造成资源短缺问题,更不用说他们正在进行潜在的冲突更改(例如,不同的分支机构)。
我们已经考虑通过为这些服务构建假客户端来嘲弄/伪造传入请求,但这是构建功能集的一个非常重要的开销(尽管它本质上确实加强了我们API的可测试性)。这也不能避免这样的事实,即有时我们确实需要诊断/调试来自真实客户端本身的问题,而不是某些伪造的请求负载。
其他人在这些类型的场景中做了什么?在混搭的这个时代,必须有很多人在开发API的经验 - 有什么工作(而不是工作)以及那里的人呢?