Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为我们的系统提供API_Java_Api - Fatal编程技术网

Java 如何为我们的系统提供API

Java 如何为我们的系统提供API,java,api,Java,Api,我对Web服务或API没有太多经验 我们有一个基于Oracle->Sun App Server->Java->Struts2框架的网站。我们需要为我们的系统提供一个API。此API将由我们系统之外的其他系统使用。API只是针对我们数据库中的一个简单SP。另一个系统不希望连接到我们的数据库以获得对SP的访问,而是希望连接一个API作为“Web服务” 社区能否就如何开展这项工作提供一些信息?API会被放到我们的Web服务器上吗?其他系统就是这样连接的吗?如何着手创建公共API?您需要考虑的一些事情是

我对Web服务或API没有太多经验

我们有一个基于Oracle->Sun App Server->Java->Struts2框架的网站。我们需要为我们的系统提供一个API。此API将由我们系统之外的其他系统使用。API只是针对我们数据库中的一个简单SP。另一个系统不希望连接到我们的数据库以获得对SP的访问,而是希望连接一个API作为“Web服务”


社区能否就如何开展这项工作提供一些信息?API会被放到我们的Web服务器上吗?其他系统就是这样连接的吗?如何着手创建公共API?

您需要考虑的一些事情是:

  • SOAP与REST()
  • 您将如何处理身份验证
  • 它需要扩展吗
你可能想看看


看看另一家公司是如何做到这一点的,查看一些想法也会很有帮助。

如果您使用的是Sun App Server,那么将EJB公开为带有@WebService标记的web服务,然后让EJB调用存储过程并返回数据应该是相当简单的。应用程序服务器为您提供了发布WSDL的工具,他们将使用WSDL来了解如何调用您的API

话虽如此,在50000英尺的高空听起来很容易,但要处理所有的细节确实是一件痛苦的事情。首先,安全性如何?第二,是否真的需要Web服务,或者是否有更好的更明显的通信机制,例如(至少)REST,如果不是一些简单的servlet通信的话。最难的部分是:您将以何种格式返回此结果集


不管怎么说,你可能要处理一些政治问题(“什么,你不知道如何做web服务,每个人都知道,等等”),所以探究需求可能有点困难。好消息是,在最新的JavaEE中发布web服务非常简单(比使用web服务容易得多)。坏消息是,细节将是致命的。例如,我见过有经验的web服务开发人员在命名空间问题上花费数小时。

Soap或Rest或。。是奖牌的一面,取决于客户的需求。 另一件(更)重要的事情是api设计本身。它是无状态的还是有状态的。客户机是否位于同一VM(Appserver)中,或位于同一LAN甚至Wan中的远程。 一旦通信通过电线,由于串行化,通信速度就会变慢。因此,您希望API方法一次获得更大(但不要太大)的数据块


或者换句话说,如果不知道更多关于您想要做什么和需要做什么的信息,您的问题就无法得到真正的回答。

用户能够与servlet通信就足够了,还是他们想要一个Web服务接口?能够与servlet通信就可以了。我不知道你所说的Web服务接口到底是什么意思。但是只要他们不需要在他们这边安装东西,就可以了。谢谢。我有几个问题。如果一个EJB被公开为一个Web服务,那么该EJB是否也会被放在AppServer上,以便他们连接到它?我将尝试以一种方式提出需求,这样我就不会听起来我不知道web服务:)此外,我发现了一些东西,展示了如何将servlet转换为web服务()。是的,应用服务器将承载EJB并使web服务可用。它将完成所有繁重的工作,您只需要一个带注释的类。您提供的链接是用于消费web服务的。这意味着呼叫它,这是您的客户/客户将要做的。您将创建一个web服务,该页面的相关部分如下所示: