我是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更完整
答案 0 :(得分:2)
假设您将CXF服务打包为WAR,以下是基于我正在进行的实际项目实现目标的方法:
baseUri
因此可以在运行时注入:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/webapp/raml/api_v1.raml#L21 .raml
,好像它是一个JSP,因此注入可以起作用:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/webapp/WEB-INF/web.xml#L70 baseUri
:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/java/eu/openanalytics/rpooli/web/BaseUriInjectionFilter.java 奖励点: