【发布时间】:2015-08-20 12:53:01
【问题描述】:
我是 REST 世界的新手,在大多数 CXF 示例中,我看到有一个配置可以在发布时在 REST 服务中公开 WADL。
类似
Available RESTful services:
Endpoint address: http://localhost:8080/ouat-servicesImpl/api
WADL : http://localhost:8080/ouat-servicesImpl/api?_wadl
然后,当点击时
<application>
<grammars/>
<resources base="http://localhost:8080/ouat-servicesImpl/api">
<resource path="/topics">
<method name="POST">
<request>
<representation mediaType="application/json"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
</resources>
</application>
我正在学习 RAML 及其在合同创建方面的好处。有什么办法可以在这个 CXF“主页”服务页面中公开 RAML 合约?还是我混合了 RAML 和 WADL 的概念/目的?其实我认为这两种方式都是暴露服务合约的方式,但我认为 RAML 更完整
【问题讨论】:
-
两者都描述了合同。但是最近 RAML 越来越流行。据我所知,WADL 是失败的。
-
是的,这正是我所听到的。您知道在使用 CXF 公开服务时是否有某种方法可以公开此 RAML 合约?
-
您可以使用 URL 公开您的 RAML 文件,就像 WSDL 一样。你也可以看看swagger,它也支持RAML。 Swagger 提供了一个 UI 来发现、记录和测试您的 REST 端点。
-
我会看看 Swagger...谢谢@Manmay
-
“但是在我看来 RAML 更完整” 实际上,RAML BY DESIGN 不那么完整。有意创建 RAML 以指定“实际”RESTful 设计,因为实际上几乎没有人在做“REST”实际上在做 REST。如果 RAML 只能指定实际的 RESTful 服务,那么没有人能够将它用于现有项目。这并不是要挖掘 RAML,作者在文档中解释了所有这些。这是一个经过深思熟虑的设计决定。