在java中实现公共API。什么框架?

时间:2010-08-24 19:55:22

标签: java api frameworks integration

我目前正致力于实现我们的Web应用程序的公共API。该应用程序是用Java编写的。

这是部署在Tomcat上的财务应用程序。我的用户可以管理他们的销售,客户,购买,库存等。这是一个非常庞大的应用程序。 font-end是用Java / GWT编写的。后端用Java编写。我们之间使用GWT-RPC机制。

我们想要的是提供一种通过公共API访问财务数据(读取+写入)的方法。这样,开发人员就能够更好地集成他们的应用程序(如工资单应用程序)。

我们不使用任何框架。没有春天,grails,等等。此外,没有Hibernate,JPA等。这是一个非常古老的应用程序,有很多ORM的专有代码,XML-> JavaBean的。身份验证等不能改变所有这些,因为应用程序已经在生产中并且它只是以这种方式工作。

API基础架构将位于不同的子域和不同的服务器上。

API应使用Oauth对用户进行身份验证。

我查看了Grails,Play!Framework和Restlet来实现我的目标

有没有人对它们有所考虑?我是否会以错误的方式使用这些框架?还有另一个框架要看吗?

谢谢大家

4 个答案:

答案 0 :(得分:1)

我建议遵循亚马逊等的示例,并将该API公开为Web服务,而不考虑UI。您可以进一步选择SOAP与REST。我想你会发现REST对你的客户来说会更简单,因为他们只需要了解HTTP。

如果你选择不这样做,这并不强制要求使用任何框架。无论你是否使用Spring,Hibernate,Grails等,后端都能正常工作。

如果你想真正重用,你必须重新编写你必须调用服务的应用程序,但从长远来看它可能是值得的。您的UI和客户端都会使用通用的后端API。

答案 1 :(得分:0)

我有一些想法是的。财务应用程序往往不使用OAuth。需要明确的是:没有易受攻击数据的人使用OAuth。这包括隐私,医疗和财务数据。

答案 2 :(得分:0)

如果您打算通过公共互联网公开对基于Java的金融服务应用程序的读/写,我将使用JAX-WS查看基于SOAP的Web服务,因为有一个非常成熟的安全规范WSS并且API相对易于使用,对现有应用的更改可能不需要太多。

REST通常被认为更容易,但对于这种类型的应用程序,您可能会发现您的目标受众无论如何都更熟悉SOAP。一切都取决于你的目标受众是谁以及你想要实现的目标,但值得考虑。

答案 3 :(得分:0)

您希望使用此API的是哪种部署环境。这可能会缩小范围,如果你完全不知道你的客户是谁,标准答案仍然是SOAP(因为很多人都知道并接受流行语)。