如何修改使用的Web服务并生成另一个Web服务

时间:2017-04-10 06:03:00

标签: java json web-services rest spring-boot

我在spring boot中使用了一个Web服务(REST),数据是json,格式如下所示:

  {
    "id": 679,
    "score": 3
    },
      {
    "id": 682,
    "score": 3
    },
      {
    "id": 692,
    "score": 3
    }

在使用数据后,我必须生成一个Web服务,该服务以JSON格式传递数据,如下所示

{
   status:{
            "code":"OK",
            "message":"success"
           }

  data:[
        {
        "id": 679,
        "score": 3
        },
          {
        "id": 682,
        "score": 3
        },
          {
        "id": 692,
        "score": 3
        }
       ]
}

所以目前我所做的是控制器部分是

 @RequestMapping(value="/data",produces={MediaType.APPLICATION_JSON_VALUE},method=RequestMethod.GET)
        public ResponseEntity<List<Model>> getBooking(@RequestParam("lat")double latitude,@RequestParam("lon") double longitude,@RequestParam("id") int id){



            list=getapi(latitude,longitude,id);
            return new ResponseEntity<List<Model>>(list,HttpStatus.OK);
        }
        @ResponseBody   
        public List<Model>  getapi(double latitude,double longitude,int id){
            List<Model> list = Arrays.asList(restTemplatestreetapi.getForObject("http://dataurl, Model[].class));

            return list;

}

我当前的Model类就像

public class Model {

    int id;
    int score;

    public int getid() {
        return id;
    }
    public void setid(int id) {
        this.id = id;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }




}

我使用该服务并直接生成它。但不是这样,我想生成上面的结果。感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以在代码中更改响应实体类型,例如

public ResponseEntity<ResponseClass> getBooking(@RequestParam("lat")double latitude,@RequestParam("lon") double longitude,@RequestParam("id") int id){

根据您的要求定义您的响应类,如

public class ResponseClass {

private Status status;

/**
 * If no error found use this method for response
 * 
 * @param message
 * @param data
 * @return
 */
public static ResponseEntity<ResponseClass> ok(Object data) {
    ResponseClass response = new ResponseClass();
    response.getStatus.setMessage.setCode("ok");
    response.getStatus.setMessage("success")

    return ResponseEntity.ok().body(response);
} }

public class Status {
private String message;
private String code;
//Getter Setter
}

以列表作为数据返回ResponseClass

return ResponseClass.ok(list);

您还可以在ResponseClass中添加错误状态