2014-02-13 47 views
-2

如何为用多种语言(例如Java,Ruby,Python,C#...)编写的各种模块公开REST接口。我们有一个要求从支付平台提取数据的要求(例如PayPal,Stripe,...)如何为用多种语言编写的各种模块公开REST接口

我们应该公开一个将被Rails应用程序使用的服务接口。 REST接口将是支付供应商不可知论的,所以它们将具有用于各种功能的通用接口。客户端会传递一个供应商标志,这个标志应该被服务器解释,并且应该调用一个Java或者Ruby或者Python或者C#运行库来获取数据。

  1. 什么工具/库可提供这种抽象的REST服务器,这将使我们能够无缝地建立这些接口能够轻松其他各种容器。

  2. 是否有任何设计模式或工具/库将使我们能够构建这种抽象。

  3. 我们如何处理API中的版本信息,以便我们可以根据供应商特定升级的更改来修改接口。

什么是最佳实践来建立这些抽象。 我应该使用大举表示JSON https://helloreverb.com/developers/swagger?我应该如何管理来自不同语言的实现。

+0

基本上你在问某人为你做研发。没关系,但你也应该支付。 – Jon

+2

我只是寻找专家的指导,以便我不踩错误的路径。希望得到任何帮助,因为它与架构有关,许多公司过去都是这样做的。 – Rpj

+0

@Jon如果你不舒服,那对我也很好。我认为这个社区是在那里寻求帮助,我也是。 – Rpj

回答

1

与您在该问题中的评论相反,您的问题真的很广泛,因此它被投票关闭。我也会投票,因为如果确实如此,这很可能会获得很多有见解的答案。这个答案只是提供一些提示。

您需要编写一个带有REST接口的Web服务,您已经知道该接口。然后建立后端以与各种支付网关通话。为每个支付网关编写模块,为它们提供相同的界面,这非常重要,以便您可以轻松添加对新支付网关的支持。您的业​​务逻辑应该从URL参数中检测要导入并交谈的模块。然后你可以建立一个标准的响应(JSON/XML/etc)并返回。

是否有任何设计模式或工具/库可以使我们构建这种抽象。

还有很多。但是StackOverflow不是找到它们的地方。你必须找到其他的方式。

我们如何处理API中的版本信息,以便我们可以根据供应商特定升级的更改来修改接口。

这需要成为您业务逻辑的一部分。支付网关特定模块应该能够接受API版本的输入并据此做出决定和呼叫。

哪些最佳实践在那里建立这些抽象

没有什么所谓的最佳实践。每个人都有不同的需求,不同的事情对他们每个人都是最好的。研究并找到您自己的最佳做法。

+0

你能提一下你知道的工具/库吗?既然你提到它们有很多。 – Rpj

+0

@Rpj不会是任何精确匹配您的需求的工具/库。有构建REST接口的框架。有插件来支持第三方服务。这取决于您编写代码并根据您的业务逻辑进行连接。 –