99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

REST 常用參數(shù)注解

2018-08-08 14:26 更新

在前面的章節(jié)中,我們已經(jīng)了解了幾個(gè)參數(shù)注解,比如 通過(guò) @PathParam 來(lái)獲取 URL 請(qǐng)求中的路徑參數(shù)。

@QueryParam

@QueryParam 用于從請(qǐng)求 URL 的查詢組件中提取查詢參數(shù)。我們?cè)?MyResource 里面添加下面的方法:

@PUT
@Path("pojo")
@Consumes(MediaType.APPLICATION_JSON)  
@Produces(MediaType.APPLICATION_JSON)
public MyBean putPojo(@QueryParam("age") int age, 
        @QueryParam("name") String name) {
    MyBean pojo = new MyBean();
    pojo.setName(name);
    pojo.setAge(age);
    return pojo;
}

這個(gè) PUT 方法,將會(huì)接收從URL 傳遞過(guò)來(lái)的參數(shù) age,name ,而后將這些參數(shù)賦給對(duì)象 MyBean ,并且返回。

啟動(dòng)服務(wù),在 RESTClient 里面發(fā)送 PUT 請(qǐng)求 http://localhost:8080/webapi/myresource/pojo?age=28&name=waylau 。成功后就能接收到一個(gè) JSON 數(shù)據(jù)對(duì)象。

{
   "age": 28,
   "name": "waylau"
}

parameter-annotations-01

@DefaultValue

如果需要為參數(shù)設(shè)置默認(rèn)值,可以使用 @DefaultValue,如:

我們?cè)?MyResource 里面添加下面的方法:

@POST
@Path("pojo")
@Consumes(MediaType.APPLICATION_JSON)  
@Produces(MediaType.APPLICATION_JSON)
public MyBean postPojoDefault(@DefaultValue("21") @QueryParam("age") int age, 
        @DefaultValue("www.waylau.com")@QueryParam("name") String name) {
    MyBean pojo = new MyBean();
    pojo.setName(name);
    pojo.setAge(age);
    return pojo;
}

啟動(dòng)服務(wù),在 RESTClient 里面發(fā)送 POST 請(qǐng)求調(diào)用 http://localhost:8080/webapi/myresource/pojo 接口,如果該請(qǐng)求包含參數(shù),則將參數(shù)值以對(duì)象形式放回,否則,將默認(rèn)值以對(duì)象形式放回

例如,當(dāng)我們的請(qǐng)求是http://localhost:8080/webapi/myresource/pojo?age=26&name=waylau

則返回

{
   "age": 26,
   "name": "waylau"
}

當(dāng)我們的請(qǐng)求是http://localhost:8080/webapi/myresource/pojo

則返回默認(rèn)值

{
   "age": 21,
   "name": "www.waylau.com"
}

@FormParam

@FormParam 顧名思義是處理 HTML表單請(qǐng)求的。要求所請(qǐng)求 MIME 媒體類型為 application/x-www-form-urlencoded,并且符合指定的 HTML 編碼的形式,此參數(shù)提取對(duì)于 HTML 表單 POST 請(qǐng)求是非常有用的。比如,我們要處理一個(gè)登陸表單,處理如下:

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response login(@FormParam("username") String username,
        @FormParam("password") String password) {
    //業(yè)務(wù)邏輯省略...
    return null;
}

其他

其他的參數(shù)注解還包括

  • @MatrixParam 從 URL 路徑提取信息
  • @HeaderParam 從 HTTP 頭部提取信息
  • @CookieParam從關(guān)聯(lián)在 HTTP 頭部的 cookies 里提取信息
  • @BeanParam 允許注入?yún)?shù)到一個(gè) bean
  • @Context 一般可以用于獲得一個(gè)Java類型關(guān)聯(lián)請(qǐng)求或響應(yīng)的上下文。

源碼

見(jiàn) parameter-annotations。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)