天天看点

RAML文件的Java解析器raml-java-parser概述

raml-java-parser是RAML社区提供的开源Java解析器。之前还有一个RAML 0.8的Java解析器,现在命名为raml-java-parser-2,已经过时了。

raml-java-parser是一款基于SnakeYAML的RAML解析器,以Java语言编写。

raml-java-parser全面支持RAML 1.0和RAML 0.8,当前版本为1.0.14(2017.8发布)。

1. 在基于RAML文件生成Java REST服务端和客户端代码的项目中,可以直接使用raml-java-parser处理项目中定义的RAML文件。

git clone https://github.com/raml-org/raml-java-parser.git
cd raml-java-parser
mvn clean package -Pjar-with-dependencies
           

在raml-java-parser/raml-parser-2/target路径下就可以得到可执行的raml-parser-2-1.0.14-full.jar文件。

注意使用-Pjar-with-dependencies参数,得到的raml-parser-2-1.0.14-full.jar是包含了各种依赖库的可执行jar文件,jar文件内容如下所示。

RAML文件的Java解析器raml-java-parser概述

从jar文件内容可知,raml-parser-2当前只支持JSON Schema draft-03和draft-04。

否则得到的raml-parser-2-1.0.14.jar只包含raml-parser-2类文件,不可执行,jar文件内容如下所示。

RAML文件的Java解析器raml-java-parser概述

在得到可执行的raml-parser-2-1.0.14-full.jar文件后,可以直接执行以验证一个raml文件是否有效,命令格式如下:

java -jar raml-parser-2-1.0.14-full.jar my/path/to/raml/file.raml
           

2. 在Maven应用中,要使用raml-java-parser只需在pom.xml中添加依赖如下:

<dependency>
  <groupId>org.raml</groupId>
  <artifactId>raml-parser-2</artifactId>
  <version>1.0.14</version>
</dependency>
           

raml-java-parser处理项目中定义的RAML文件生成类型为Api的对象。虽然针对RAML 0.8和RAML 1.0生成的是不同对象,但是这里统一以Api对象引用。

在项目的代码中,使用Api对象如下:

RamlModelResult ramlModelResult = new RamlModelBuilder().buildApi(a_raml_file);
Api api = ramlModelResult.getApiV10();//RAML 1.0
api.title();
api.version();
api.baseUri();
...
           

参考链接:

https://github.com/raml-org/raml-java-parser