在 CXF 中公开 RAML 合约而不是 WADL
Expose RAML contract instead WADL in CXF
我是 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 "home" 服务页面中公开 RAML 合约?还是我混合了 RAML 和 WADL 的概念/目的?实际上我认为这两种方式都是公开服务契约的方式,但我认为 RAML 更完整
假设您将 CXF 服务打包为 WAR,根据我正在从事的真实项目,以下是实现目标的方法:
- 将 RAML 和 JSON 文件拖放到 webroot 文件夹下:https://github.com/openanalytics/RPooli/tree/master/webapp/src/main/webapp/raml
- 模板
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
- 添加 RAML mime 类型:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/webapp/WEB-INF/web.xml#L76-L79
- 添加一个过滤器来计算
baseUri
的动态部分:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/java/eu/openanalytics/rpooli/web/BaseUriInjectionFilter.java
- 将其连接到 web.xml:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/java/eu/openanalytics/rpooli/web/BaseUriInjectionFilter.java
奖励积分:
我是 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 "home" 服务页面中公开 RAML 合约?还是我混合了 RAML 和 WADL 的概念/目的?实际上我认为这两种方式都是公开服务契约的方式,但我认为 RAML 更完整
假设您将 CXF 服务打包为 WAR,根据我正在从事的真实项目,以下是实现目标的方法:
- 将 RAML 和 JSON 文件拖放到 webroot 文件夹下:https://github.com/openanalytics/RPooli/tree/master/webapp/src/main/webapp/raml
- 模板
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 - 添加 RAML mime 类型:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/webapp/WEB-INF/web.xml#L76-L79
- 添加一个过滤器来计算
baseUri
的动态部分:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/java/eu/openanalytics/rpooli/web/BaseUriInjectionFilter.java - 将其连接到 web.xml:https://github.com/openanalytics/RPooli/blob/master/webapp/src/main/java/eu/openanalytics/rpooli/web/BaseUriInjectionFilter.java
奖励积分: