因此,在上一篇文章中,我讨论了一个允许在WADL中使用JSON-Schema的建议,这篇文章探讨了如何使它与最近构建的Jersey一起使用。 在1.16发布之前,您将必须下载/参考1.16SNAPSHOT。

如果您使用的是Maven,那么假设您已经有了jersey和jersey-json,那么更新依赖项应该很简单。 您只需要添加对“ com.sun.jersey.contribs”组中“ jersey-wadl-json-schema”伪像的依赖关系,即可获得新功能。

如果您不在Maven之外,最简单的方法是下载最新的jersey-archive ,然后下载jersey-wadl-json-schema jar。 如何部署这些是特定于工具的,但是,如果您使用的是WLS,则以下是有关如何升级Jersey版本的一些特定说明 。

完成此工作后,需要创建WadlGeneratorConfig类以启用此新的语法生成:

package jersey;import com.sun.jersey.api.wadl.config.WadlGeneratorConfig;
import com.sun.jersey.api.wadl.config.WadlGeneratorDescription;
import com.sun.jersey.wadl.generators.json.WadlGeneratorJSONGrammarGenerator;import java.util.List;public class JsonGeneratorConfig extends WadlGeneratorConfig {@Overridepublic Listconfigure() {return generator(WadlGeneratorJSONGrammarGenerator.class).descriptions();}
}

然后可以通过多种方式进行注册,这是使用servlet初始化参数的示例。 还要注意,为了使这个示例简单,我们使用Jersey POJO映射; 但是在撰写此博客时,我注意到该设置会影响WADL的JSON版本的格式,以防您尝试这样做。

<?xml version = '1.0' encoding = 'ISO-8859-1'?>
<web-app xmlns='http://java.sun.com/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd'version='3.0'><servlet><servlet-name>jersey</servlet-name><servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class><init-param><param-name>com.sun.jersey.config.property.WadlGeneratorConfig</param-name><param-value>jersey.JsonGeneratorConfig</param-value></init-param><init-param><param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name><param-value>true</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>jersey</servlet-name><url-pattern>/resources/*</url-pattern></servlet-mapping>
</web-app>

因此,我整理了一个非常简单的echo服务,只是为了检查它是否正常工作:

package jersey;import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;@Path('/echo')
public class EchoResource {@GET@Produces('application/json')public EchoBean echo() {EchoBean bean = new EchoBean();bean.setMessage('Hello');return bean;}@POST@Consumes('application/json')@Produces('application/json')public EchoBean echo(EchoBean echo) {return echo;}}andpackage jersey;public class EchoBean {public EchoBean() {super();}private String message;public void setMessage(String message) {this.message = message;}public String getMessage() {return message;}}

这个非常简单的示例将导致以下带有引用的JSON-Schema元素的WADL:

<?xml version = '1.0' encoding = 'UTF-8'?>
<ns0:application xmlns:ns0='http://wadl.dev.java.net/2009/02'><ns0:doc xmlns:ns1='http://jersey.java.net/' ns1:generatedBy='Jersey: 1.16-SNAPSHOT 11/19/2012 12:59 AM'/><ns0:grammars/><ns0:resources base='http://localhost:7103/Jersey/resources/'><ns0:resource path='/echo'><ns0:method id='echo' name='GET'><ns0:response><ns0:representation mediaType='application/json' xmlns:ns2='http://wadl.dev.java.net/2009/02/json-schema' ns2:describedby='application.wadl/echoBean'/></ns0:response></ns0:method><ns0:method id='echo' name='POST'><ns0:request><ns0:representation mediaType='application/json' xmlns:ns3='http://wadl.dev.java.net/2009/02/json-schema' ns3:describedby='application.wadl/echoBean'/></ns0:request><ns0:response><ns0:representation mediaType='application/json' xmlns:ns4='http://wadl.dev.java.net/2009/02/json-schema' ns4:describedby='application.wadl/echoBean'/></ns0:response></ns0:method></ns0:resource></ns0:resources>
</ns0:application>

URI application.wadl / echoBean包含以下简单的JSON-Schema定义:

{'type' : 'object','properties' : {'message' : {'type' : 'string'}},'name' : 'echoBean'
}

现在,当前设计中存在许多限制,尤其是生成的模式不考虑任何符号设置 。 但是我认为这足以引起人们对该功能是否普遍有用的反馈。 在网络上以及在Oracle内部,人们对JSON-Schema的兴趣似乎都在增长,因此,看看这种描述是否变得更加普遍将很有趣。

参考: Gerard Davison博客博客中的JCG合作伙伴 Gerard Davison 在泽西 岛上的 JSON-Schema生成 。

翻译自: https://www.javacodegeeks.com/2012/11/json-schema-generation-in-jersey.html

泽西岛的JSON模式生成相关推荐

  1. 使用MOXy 2.5.1快速且有点脏的JSON模式生成

    因此,这些天我正在为即将推出的Oracle云服务开发新的REST API,因此我需要做的事情之一就是能够为模型中的bean自动生成JSON模式. 我正在使用MOXy从POJO生成JSON,从Eclip ...

  2. moxy json介绍_使用MOXy 2.5.1快速且有点脏的JSON模式生成

    moxy json介绍 因此,这些天我正在为即将推出的Oracle云服务开发新的REST API,因此我需要做的事情之一就是能够为模型中的bean自动生成JSON模式. 我正在使用MOXy从POJO生 ...

  3. java中Jackson_在Java中使用Jackson的JSON模式支持?

    JSON模式是基于JSON格式的规范,用于定义JSON数据的结构.该JsonSchema类可以提供什么需要一个给定的应用程序以及如何与它进行交互JSON数据的合同. JsonSchema可以定义验证, ...

  4. jaxb xsd生成xml_使用JAXB和Jackson从XSD生成JSON模式

    jaxb xsd生成xml 在本文中,我演示了一种从XML Schema (XSD)生成JSON Schema的 方法 . 在概述从XML Schema创建JSON Schema的方法的同时,本文还演 ...

  5. 使用JAXB和Jackson从XSD生成JSON模式

    在本文中,我演示了一种从XML Schema (XSD)生成JSON Schema的 方法 . 在概述从XML Schema创建JSON Schema的方法的同时,本文还演示了JAXB实现的用法(与J ...

  6. json注释怎么加注释_基于带注释的JSON模式为vuetify UI库生成表单

    json注释怎么加注释 vuetify-jsonschema-form (vuetify-jsonschema-form) Generate forms for the vuetify UI libr ...

  7. moxy json介绍_MOXy的@XmlVariableNode – JSON模式示例

    moxy json介绍 我们正在向EclipseLink MOXy添加从域模型生成JSON模式的 功能 . 为此,我们创建了一个新的变量节点映射. 在本文中,我将通过将Java模型映射到JSON模式来 ...

  8. restful web_泽西岛的RESTful Web服务

    restful web 我已经讨论了有关体系结构考虑事项<< link >>的早期文章,以成为可在我的系统/机器上使用的分布式环境上的RESTful系统. 本文我们将讨论如何基 ...

  9. JSON模式在构建和部署API中的作用

    什么是JSON模式 ? 它提供了描述任何JSON值的结构和属性的详尽方法. 在记录对任何JSON API的请求和响应时,它非常有用. 本文将探讨其在API的软件开发周期中的作用. 记录JSON响应格式 ...

最新文章

  1. 资深专家都知道的顶级 Docker 命令!
  2. python中运行结果为false-python 两个一样的字符串用==结果为false问题的解决
  3. Javascript的面对对象的理解 【上】(prototype,函数和对象等概念)
  4. linux 批量替换
  5. c语言竞赛成绩排序,吧内编程竞赛:成绩公布
  6. 关于python django开发过程中的常见的问题及解决办法总结
  7. 【缓存】缓存,这么用才真正达到缓存的效果
  8. 苹果开发者账号那些事儿(三)
  9. html5标签 不可修改,SEO优化不可忽视的5个Html代码标签
  10. C/C++取数据中高8位,低8位,合成新数据
  11. 服务器配置tomcat,使用浏览器访问服务器资源
  12. 10g gtx 光纤通信测试_光纤通信系统仿真实验
  13. 移动端图片浏览器轮子
  14. 微型计算机vga什么意思,电脑显示器显示vga什么意思
  15. 单例模式(懒汉,饿汉)
  16. 习题11-7 奇数值结点链表 (20分)
  17. 初学Linux服务器管理
  18. 微信小程序引入外部icon(阿里巴巴矢量图标)
  19. 怎么用python编写心形图案,python编程爱心形状turtle
  20. 2019第五届中国诗歌春晚致敬先贤

热门文章

  1. 转:微服务设计、拆分原则
  2. 基础笔试编程题(jz)
  3. tomcat(4)Tomcat的默认连接器
  4. 2021年最新springcloud配置中心不生效的版本原因
  5. java代码识别_识别Java中的代码气味
  6. 使用junit进行单元测试_使用JUnit对ADF应用程序进行单元测试
  7. java模拟连接超时_Java:使用Toxiproxy模拟各种连接问题
  8. payara 创建 集群_在Payara Server和GlassFish中配置密码
  9. spring health_为什么Spring的Health会再次向下,向下,向上,向上,向上和向下?...
  10. 带有Spring Security的OAuth 2.0快速指南