SpringBoot REST 接口

REST的理论基础中有一个重要的理念:统一接口;

统一接口主要有:

  1. 资源识别:对URL进行识别;

  2. 资源操作:
    HTTP verbs: GET、PUT、POST、DELETE
    其中GET:请求获取,幂等;
    PUT:请求更新,幂等;
    POST:请求创建,非幂等;
    DELETE:请求删除,幂等;

  3. 字描述信息:
    Content-Type:响应、请求中均包含该描述信息,主要描述请求或响应的内容格式(XML、HTML、JSON)和编码格式;
    MIME-Type:
    Media Type:application/javascript、text/html……

  4. 超媒体(HATEOAS)

REST 服务端实践

springboot REST 的核心接口:

  1. 定义相关
    @Controller、@RestController;
    @RestController注解相当于@ResponseBody + @Controller合在一起的作用
    1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
    2) 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。 如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

  2. 映射相关
    @RequestMapping、@PathVariable;

  3. 请求相关
    @RequestParam、@RequestHeader、@CookieValue、
    RequestEntity、@RequestBody;

    @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。
    用法如下:

 @PostMapping("/addPcbaData")
    @Transactional
    public MesResponseData addPcbaData(@RequestBody PcbaData pcbaData) {
    ……
    }
  1. 响应相关
    @ResponseBody、ResponseEntity;
    @ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。需要注意的是:使用此注解后步再走视图处理器,而是直接将数据写到输入流中,效果等同response对象输出指定格式的数据;
@RequestMapping("/login")
  @ResponseBody
  public User login(User user){
    return user;
  }

User字段:userName pwd 那么在前台接收到的数据为:’{“userName”:“xxx”,“pwd”:“xxx”}’
效果等同于:

@RequestMapping("/login")
  public void login(User user, HttpServletResponse response){
    response.getWriter.write(JSONObject.fromObject(user).toString());
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值