• springMvc REST 请求和响应


    前言:

        突然怎么也想不起来  springMvc REST 请求的返回  类型了!   (尴尬+究竟)  然后本着 方便的想法 百度了一下  

               发现了个问题,大家在写      springMvc REST 的文档 和记录或者笔记的时候 。

               只写到了 符合 REST 风格的 请求 ,而 响应信息 完全是 传统的 主体数据传递 。然而这并非 REST响应的 风格啊 !!!!

              下面把自己整理的笔记发上来 

        
    关于MVC REST 请求的方式
    
    格式1
       
        @RequestMapping(value = "{itemCatId}", method = RequestMethod.GET)
        public ResponseEntity<TbItemParam> queryItemParamByItemCatid(
                @PathVariable Long itemCatId)
        {
        
        }
    格式2 
    
        @RequestMapping(value = "{itemCatId}", method = RequestMethod.GET)
        @ResponseBody
        public ResponseEntity<TbItemParam> queryItemParamByItemCatid(
                @PathVariable("itemCatId") Long itemCatId)
        {
             
        }
    
    格式3
        @RequestMapping(value = "/destroy/{ConsumerID:^[0-9]*.*@[0-9]*}", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
        @ResponseBody
        public ResponseEntity<String> destroyMqConsumer(@PathVariable String ConsumerID)
        {
        
        }
    格式4 
        
        @RequestMapping(value = "{itemCatId}", method = RequestMethod.POST)
        public ResponseEntity<Void> saveItemParam(@PathVariable("itemCatId") Long itemCatId,
                @RequestParam("paramData") String paramDate)
        {
        }
        
        
    REST 响应的方式
            try
            {
                TbItemParam queryitemParam = new TbItemParam();
                queryitemParam.setItemCatId(itemCatId);
                return ResponseEntity.ok(queryitemParam);  // 状态码是  200 
                return ResponseEntity.status(HttpStatus.CREATED).build();  // 状态码是  200  不返回 实体数据
                return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(queryitemParam);  // 状态码是  200  返回 实体数据
            }
            catch (Exception e)
            {
                e.printStackTrace();
                return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); // 状态码是  200  返回 实体数据 是null
                return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
                // 状态码是  500
            }
            
    备注:
            
            
    关于返回值是 List 的问题  
        建议自定义分装一个POJO         
        
    @ResponseBody 注解的再次说明 
    
        该注解是通过请求头的带入的信息来 格式化对应的返回值的的!!
        
        produces = "application/json; charset=utf-8"
        返回对象是一个  UTF-8格式的 JSON 对象
        
        produces = "application/xml; charset=gbk"
        返回对象是一个  gbk格式的 xml 对象
        
        
    
    @RequestMapping("table")
    @Controller
    public class outTable
    {
    
        @RequestMapping(value = "/json", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
        @ResponseBody
        public ResponseEntity<Clientinfo> querylist()
        {
            Clientinfo c = new Clientinfo();
            c.setClientflag("100");
            c.setClientname("1001");
            c.setCrmcode(1002);
            c.setId(1);
            return ResponseEntity.ok(c);
        }
    
        @RequestMapping(value = "/xml", method = RequestMethod.GET, produces = "application/xml; charset=utf-8")
        @ResponseBody
        public ResponseEntity<Clientinfo> query()
        {
            Clientinfo c = new Clientinfo();
            c.setClientflag("100");
            c.setClientname("1001");
            c.setCrmcode(1002);
            c.setId(1);
            return ResponseEntity.ok(c);
        }
    
    }    
  • 相关阅读:
    Python基础知识
    Oracle 总结
    Linux基本命令
    测试理论
    计算机基础
    http常见的状态码,400,401,403状态码分别代表什么?
    html
    day21 包
    day20 模块引入的一些说明
    我又回来了???
  • 原文地址:https://www.cnblogs.com/atliwen/p/REST.html
Copyright © 2020-2023  润新知