2017-10-07 101 views
0

我是REST Web服务中的新成员。我一直使用SOAP构建自WSDL以来的Web服务,并自动生成Java代码中的Web服务逻辑,但REST拥有统一的合同,因此我们不需要创建合同定义,SOA表示自上而下的方法是最好的方式来创建一个解耦的Web服务,但我不知道如何在自顶向下或自下而上的方法中创建REST服务。我想了解一些您的经验以及如何使用Java创建REST Web服务。 IDE或API并不重要。如何使用自顶向下的方法构建REST Web服务?

+0

我使用[改装](http://square.github.io/retrofit/),使一个Android的Java HTTP客户端。 – hexicle

回答

1

直到最近这是不可能的。由于缺少REST WSDL,您无法使用REST自顶向下。这就是为什么很多企业从未迁移到REST的原因,例如在银行交易中,您希望界面的定义和严格。你可以在SOAP中创建这个严格的定义,但以前它很难休息。

REST正忙着变得更像一些方面的SOAP,因为现在需要通过各种竞争标准来解决定义明确的接口。或者用简单的英语,有很多项目竞争成为REST世界的WSDL,但它们不限于:

  1. RAML。
  2. Swagger。
  3. WADL。

我在RAML中使用了一些自上而下的代码生成,它是相对好的,但非常流血的边缘。

问题是如果你需要这样定义良好的接口,你为什么要去REST?整个XML vs JSON参数不是一个有效的原因。臃肿的JSON可能比最佳的XML更大。

+0

您可以使用SOAP或REST创建Web服务并在它们之间进行交换。对于基于网络的服务(SOAP)来做到这一点是与自上而下的方法,以获得从逻辑分离合同的最好方式,REST已通过HTTP方法的所有服务统一合同。所以,他们已经有了一个分离的合同,但你必须用自下而上的方法创建REST服务,那么,这句话对我来说没有任何意义。在工作中我们使用了SOAP,但是我发现现在REST更受欢迎。在他们要求我们迁移SOAP服务,以REST服务未来几天(我不知道为什么,只是官僚)当然 – Reyjhonny

+0

@Reyjhonny可以SOAP和REST之间交换数据。但是REST只能在HTTP上运行,并且没有官方的WSDL类型的对象。 SOAP可以在HTTP或SMTP上运行,但不绑定到HTTP。因此SOAP和REST在这方面有着根本性的不同。 – Namphibian

+0

不,你是不正确的REST没有任何合同。这就是REST很简单的原因,REST没有正式的自上而下的方法。尝试使用RAML它提供了一些自上而下的功能,但并没有什么官方的。 – Namphibian