JIRA REST API(一)

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。

 

 

4.REST中訪問資源的URI有什麼書寫格式嗎?
格式:http://host.com:port/appName/rest/api-name/api-version/resource-name
例如:如果 自定義JIRA插件配置文件(atlassian-plugin.xml)中的rest標籤爲:

 

<rest key="helloWorldRest" path="/helloworld" version="1.0">
    <description>Provides hello world services.</description>
</rest>

那麼 URI應爲:
http://localhost:2990/jira/rest/helloworld/1.0/resource-name

【注意】

4.1 resource-name是rest類中註解聲明的URI path,由此我們才知道哪個REST資源的哪個方法將被訪問。

 

4.2 可以在resource name後指定接收response的類型,例如:resource-name.json/或resource-name.xml。

 

4.3 reource name類似於OOP中的對象,常用的資源名有"issue","user","attachment"。

 

 

5.在JIRA配置文件中,rest標籤中有哪些值得注意的屬性和子標籤?
 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中指定。

 

   //例如:http://myhost.com:port/myapp/rest/api-name/api-version/resource-name?testParam=a
 
   Public Response getParam(@QueryParam("testParam")String testParam){}

  @PathParam------路徑參數B定義在某個方法的參數A前,表示將訪問路徑中的參數B賦值給參數A。

 

//例如:http://myhost.com:port/myapp/rest/api-name/api-version/1234,
       // @Path("/{id}"),路徑參數爲1234,
        Public Response getParam(@PathParam("id")String id){}

  @AnonymousAllowed------用在方法名之上,允許匿名,不需要用戶驗證就可以調用方法;如果沒有該註解,
  則需要和應用程序間建立會話或指定用戶名/密碼這樣的參數。
  @XmlAccessorType------用在類名和枚舉之上,用來控制字段或屬性是否被默認序列化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章