2.7.13. YAML 供应商
警告
不支持 resteasy-yaml-provider 模块。不建议使用,因为 RESTEasy 用于取消托管的 SnakeYAML 库中存在安全问题。
RESTEasy 附带使用 SnakeYAML 库构建的 YAML 支持。
在 JBoss EAP 7.1 之前的版本中,YAML 提供程序设置默认启用,您只需要为 YAML 配置 Maven 依赖项,即可在应用中使用。自 JBoss EAP 7.1 起,默认情况下,YAML 提供程序是禁用的,应用中必须明确启用 YAML 提供程序。
启用 YAML 提供者
要在应用程序中启用 YAML 供应商,请按照以下步骤执行:
-
创建或更新名为
javax.ws.rs.ext.Providers的文件。 将以下内容添加到 文件中:
org.jboss.resteasy.plugins.providers.YamlProvider-
将文件放到 WAR 或 JAR 文件的
META-INF/services/文件夹中。
YAML Provider Maven 依赖项
要在应用程序中使用 YAML 供应商,您必须将 snakeyaml JAR 依赖项添加到应用程序的项目 POM 文件中。
示例:YAML 的 Maven 依赖项
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-yaml-provider</artifactId>
<version>${version.org.jboss.resteasy}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${version.org.yaml.snakeyaml}</version>
</dependency>
YAML 提供程序代码示例
YAML 供应商识别三种 mime 类型:
- text/x-yaml
- text/yaml
- application/x-yaml
以下是如何在资源方法中使用 YAML 的示例。
示例:资源生成 YAML
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/yaml")
public class YamlResource {
@GET
@Produces("text/x-yaml")
public MyObject getMyObject() {
return createMyObject();
}
...
}