gpt4 book ai didi

java - restful WS 中的 WSDL 等价物是什么。如果没有,消费者如何生成所需的客户端类?

转载 作者:搜寻专家 更新时间:2023-10-31 19:38:47 25 4
gpt4 key购买 nike

比如说,我在 java 中有生产者,在点网中有消费者。生产者有一个方法需要员工作为方法参数并在数据库中创建员工。

对于基于 SOAP 的 ws,dot net 客户端将访问 WSDL 并创建 stub (包括 dot net 中的员工数据表示)。现在可以填对象并发送给生产者。

由于没有 WSDL,我不确定它在 Restful 网络服务中如何工作。休息消费者将如何知道操作是什么 在没有任何 WSDL 契约(Contract)的情况下由生产者公开,以及 dot net 消费者如何获得 stub (如员工数据对象)以便它可以简单地填充它并发送?

我知道有 WADL(与 WSDL 平行)在休息,但看起来它不是很突出,目前还不是标准。

我不明白客户端代码将如何生成 EmployeeData 类,以便它可以填充它并发送给生产者?客户端是否会手动创建额外的类(而不是过去使用客户端可用的实用程序基于 WSDL 生成的代理 EmployeeData)?即使客户端必须手动执行,如果没有 wsdl 或 wadl,客户端如何知道 EmployeeData 类的类定义是什么?

最佳答案

REST 的一个重要概念是 HATEOAS or Hypermedia as the Engine of Application State .这意味着您的客户端通过服务传递给它的超媒体链接与 REST 服务交互。

您的 REST 网络服务有一个入口点,比如 http://yourhost.com/rest。您的客户端将首先向该 URL 发送请求。您的服务将使用描述部分或所有可访问资源以及如何访问它们的资源进行响应。您不断发现并关注链接。这就是发布(和发现)API 的方式。

这里有一个描述这个概念的很棒的视频:Hypermedia APIs.

通过 HATEOAS,您只需点击超媒体链接即可让您的服务 API 完全被发现。


没有top down/bottom up的概念在 REST 中设计。

REST 是关于资源的,而不是关于方法调用的,这基本上是 WSDL 所描述的。

Even if client has to do it manually, how client will know what is the class definition of EmployeeData class without wsdl or wadl?

不需要创建EmployeeData 类。假设您需要创建一个新的 Employee,您可以向 /employees 发送一个 GET 请求,该请求可能会返回一个包含如何操作的响应。这可能是像这样的 XHTML 响应(除其他外)

<form class="new-employee" action="/context/employees" method="PUT" >
<input type="text" name="employee_name" />
<input type="text" name="employee_age" />
<input type="submit" name="submit" />
</form>

响应包含创建新员工所需遵循的确切格式。您需要使用包含这些表单参数的 HTTP PUT 请求将表单提交到 /context/employees。这是 HATEOAS。超媒体链接是 /context/employees。引擎通过 PUT 请求跟踪此链接。应用状态是在本次请求后,会存在一个新员工。

关于java - restful WS 中的 WSDL 等价物是什么。如果没有,消费者如何生成所需的客户端类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com