【问题标题】:Restful providing and consuming Web Service javaRestful提供和使用Web Service java
【发布时间】:2016-10-19 10:57:38
【问题描述】:

在提供 Restful Web 服务(在 java 中)时,有没有办法像在 soap 服务 wsdl 中一样公开服务内部的方法及其参数?

Web 服务的消费端如何知道可以使用的可用方法是什么? (我只想通过它的 URL 使用 Web 服务)。

我正在使用带有 Apache Tomcat 的 NetBeans 8.0.2。

非常感谢。

【问题讨论】:

    标签: rest restful-architecture restful-url discoverability


    【解决方案1】:

    Richardson Maturity ModelREST都是关于Resources,可以在上面应用HTTP Verbs(而不是“方法”),发现/通过Links暴露.例如,在您的 API 的顶层,客户端可能会注意到 products-query 关系,该关系会在通过 GET 请求访问后检索产品资源列表 - 等等。

    实现此目的的另一种方法是将Swagger 连接到您的 API 之上。

    【讨论】:

      【解决方案2】:

      正如@Alexandru 指出的 Richardson 成熟度模型,对于真正的 RESTful 服务或客户端,最后一个级别(通常从索引 0 开始为 3)已经到位,否则它不是“真正的”RESTful。

      REST 背后的核心思想是将分布式客户端和服务器解耦,类似于 Web 浏览器与任何 Web 服务器完全分离。此外,类似于从某个起始页开始然后使用链接浏览页面的传统 Web 会话,这同样适用于从某些基本资源开始然后使用返回的 URI 导航到新资源的 RESTful 内容。

      每个 URI 都以协议标识符开头,该标识符定义了可以对引用的资源执行的可能操作或方法。大多数情况下,这将是 HTTP,但不限于此,还可以使用 mailto、FTP 或类似的东西。因此,相应的协议规范也是关于可能操作的文档。

      需要传递给 URI 的参数要么已经由先前请求的响应设置,要么可能是模板化的,因此由客户端动态设置。在这里,客户需要了解如何处理模板以及从哪里获取可能的值。然而,这也可以包含在响应中,类似于 Web 表单,其中某些选项也由服务器提供。各自的media-type(即application/atom+xmlapplication/hal+json)通过赋予内容更多的语义价值来支持客户端处理数据,甚至可能定义目标可以用来简化其工作的某些结构。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-14
        • 2012-08-23
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        • 1970-01-01
        • 2018-01-26
        • 2023-03-12
        相关资源
        最近更新 更多