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(); } ... }