gpt4 book ai didi

web-services - RESTful Web 服务是否支持契约优先和契约后两种方法?

转载 作者:行者123 更新时间:2023-12-04 04:36:55 25 4
gpt4 key购买 nike

RESTful Web 服务(例如在 JAX-RS 实现中)是否支持契约优先(自上而下)方法和契约最后(自下而上)方法?

最佳答案

Do RESTful web services support both contract-first and contract-last approaches?



这取决于您使用的工具/框架。

您所说的适用于 SOAP Web 服务及其随附的 WSDL。

WSDL 描述了 Web 服务期望的输入以及客户端期望的输出。它定义了为了让双方相互通信而要遵循的契约(Contract)。您可以通过 contract-first or contract-last 获取 WSDL并且您可以稍后使用此 WSDL 为客户端 stub 或服务框架生成代码。

但是做 REST 和做 SOAP 是不一样的。适用于 SOAP(一种协议(protocol))的流程不一定会因为我们熟悉它们而适用于 REST(一种架构风格)。

与公开方法和方法签名的 SOAP 不同,REST 公开资源。了解这些资源交换中使用的媒体类型是 REST 客户端与 REST Web 服务通信所需要的全部内容。无需单独的文档来描述资源。

因为 HATEOAS原则上,REST 客户端更具动态性,可以适应使用相同媒体类型进行通信的其他服务。公开静态服务描述文档将限制 REST 服务。

话虽如此,有些 REST 工具确实会公开描述文档,例如 Jersey who exposes a WADL (最后契约(Contract))。我确信您可以使用已发布的 WADL 来构建客户端 stub ,我看不出您不能手动编写 WADL(契约(Contract)优先)并使用它来生成 stub 和骨架的原因。但正如我所说,这可能不是 REST 的最佳解决方案。

如果契约(Contract)最后或契约(Contract)优先的方法在 REST 中有意义,您可能需要阅读以下一些帖子以形成意见:
  • Does REST Need a Description Language?
  • Why the slow WADL uptake?
  • 关于web-services - RESTful Web 服务是否支持契约优先和契约后两种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603323/

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