JIRARESTAPI(⼀)
1.REST插件模块是⽤来⼲什么的?
REST插件模块将服务和数据实体公开为REST API;REST模块基于JAX-RS,具体来说,它使⽤了Jersey。
REST API是通过URI路径来访问资源的,插件或脚本发出HTTP请求并解析响应。
请求⽅法是标准的HTTP⽅法,如GET,PUT,POST和DELETE;响应格式可以选择XML或JSON。
2.响应格式XML和JSON有什么不同吗?
我们通过JAXB注解来实现Java类和XML/JSON的相互转化,常见的JAXB注解有@XmlRootElement、 @XmlElement、
@XmlAttribute、 @XmlAccessorType。
默认情况下,JSON响应包括⽤JAXB注释显式注释的任何对象字段,⽽XML响应包括public字段和带有public getter的字段。
3.什么是JAXB?
Java Architecture for XML Binding (JAXB)⽤于XML绑定的Java框架,将Java类映射为XML。
<rest key="helloWorldRest" path="/helloworld" version="1.0">
<description>Provides hello world services.</description>
</rest>
【注意】
4.1 resource-name是rest类中注解声明的URI path,由此我们才知道哪个REST资源的哪个⽅法将被访问。
4.2 可以在resource name后指定接收response的类型,例如:resource-name.json/或l。
4.3 reource name类似于OOP中的对象,常⽤的资源名有"issue","user","attachment"。
5.在JIRA配置⽂件中,rest标签中有哪些值得注意的属性和⼦标签?
java xml是什么5.1属性:版本version------这是REST API的版本,跟插件版本不⼀样。版本号遵循与OSGi版本相同的模式,
即major.minor.micro.qualifier,其中major,minor和micro是整数。
5.2⼦标签:包package------指明从哪⾥扫描资源,可以指定多个package,默认是扫描整个插件。
6.在创建rest资源类时,注解中有什么需要注意的?
6.1 JAXB注解介绍:
@Path()-----可以定义在包名、类名或⽅法名之上,对应的访问路径也不同。如果⽅法名上添加的是根路径,
那么其他⽅法上不能再添加根路径。
@GET------⽤在⽅法名之上,如果有多个⽅法名都添加了@GET注解,必须也要分别添加@Path()注解以区分开。
@Produces------指定⽅法返回的内容类型,如果缺少该注解,则可以返回任意类型。
@QueryParam------查询参数B定义在某个⽅法的参数A前,表⽰将⼀个查询参数B赋值给参数A,查询参数可以在 URI中指定。
//例如:myhost:port/myapp/rest/api-name/api-version/resource-name?testParam=a
Public Response getParam(@QueryParam("testParam")String testParam){}
@PathParam------路径参数B定义在某个⽅法的参数A前,表⽰将访问路径中的参数B赋值给参数A。
//例如:myhost:port/myapp/rest/api-name/api-version/1234,
// @Path("/{id}"),路径参数为1234,
Public Response getParam(@PathParam("id")String id){}
@AnonymousAllowed------⽤在⽅法名之上,允许匿名,不需要⽤户验证就可以调⽤⽅法;如果没有该注解,
则需要和应⽤程序间建⽴会话或指定⽤户名/密码这样的参数。
@XmlAccessorType------⽤在类名和枚举之上,⽤来控制字段或属性是否被默认序列化。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论