springboot 常见请求方式

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/80404645
本文出自【赵彦军的博客】

用户模型类

package com.yiba.wifi.news.bean.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue
    Integer id;

    String name;

    Integer age ;

    //....set 省略
    //....get 省略
}

Get 请求

1、无参

请求api

http://localhost:8083/api/find

接口设计

package com.yiba.wifi.news.controller;

import com.yiba.wifi.news.bean.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("api")
public class UserController {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
     * 查询 id 数据
     * @return
     */
    @GetMapping("find")
    public User findOne() {

        //查询用户逻辑.....
        return new User();
    }

}

2、带参数

请求api

http://localhost:8083/api/find?name=zhaoyanjun

接口设计

package com.yiba.wifi.news.controller;

import com.yiba.wifi.news.bean.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("api")
public class UserController {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
     * 查询 id 数据
     * 当 name 为 null 的时候,用默认值 yanjun 代替
     * @return
     */
    @GetMapping("find")
    public User findOne(@RequestParam(value = "name", defaultValue = "yanjun") String name) {

        //查询用户逻辑.....
        logger.info("name:" + name);
        return new User();
    }

}

3、RESTful API

请求api

http://localhost:8083/api/find/5

接口设计

package com.yiba.wifi.news.controller;

import com.yiba.wifi.news.bean.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("api")
public class UserController {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
     * 查询 id 数据
     *
     * @param id
     * @return
     */
    @GetMapping("find/{id}")
    public User findOne(@PathVariable("id") Integer id) {
        logger.info("id:" + id);
        
        //查询用户逻辑.....
        return new User();
    }

}

POST 请求

1、表单请求

1、 请求api 方式一

http://localhost:8083/api/find?name=zhaoyanjun

实例图:
这里写图片描述

2、 请求api 方式二:表单

http://localhost:8083/api/find

实例图:

这里写图片描述

接口设计

package com.yiba.wifi.news.controller;

import com.yiba.wifi.news.bean.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("api")
public class UserController {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
     * 查询 id 数据
     *
     * @return
     */
    @PostMapping("find")
    public User findOne(@RequestParam(value = "name", defaultValue = "yanjun",required = false) String name) {

        //查询用户逻辑.....
        logger.info("name:" + name);
        return new User();
    }

}

2、参数为对象

请求api

http://localhost:8083/api/find

请求 body

{
    "id": 1,
    "name": "yanjun",
    "age": 18
}

接口设计

package com.yiba.wifi.news.controller;

import com.yiba.wifi.news.bean.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("api")
public class UserController {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
     * 查询 id 数据
     *
     * @return
     */
    @PostMapping("find")
    public User findOne(@RequestBody User user) {

        //查询用户逻辑.....
        logger.info("name:" + user.getName());
        return user;
    }

}

请求示例:

这里写图片描述

请求 header 获取

获取单个 header

接口设计

package com.yiba.wifi.news.controller;

import com.yiba.wifi.news.bean.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("api")
public class UserController {

    Logger logger = LoggerFactory.getLogger(this.getClass());


    /**
     *
     * @param user
     * @param token 获取 header 里面的 token 字段
     * @return
     */
    @PostMapping("find")
    public User findOne(@RequestBody User user,
                        @RequestHeader(value = "token") String token) {

        //查询用户逻辑.....
        logger.info("token:" + token);
        return user;
    }

}

请求示例

这里写图片描述

2、获取所有 header

接口设计

package com.yiba.wifi.news.controller;

import com.yiba.wifi.news.bean.domain.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping("api")
public class UserController {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private HttpServletRequest request;

    @PostMapping("find")
    public User findOne(@RequestBody User user) {

        logger.info("CONTENT_TYPE:" + request.getHeader(HttpHeaders.CONTENT_TYPE));  //获取header
        logger.info("TOKEN:" + request.getHeader("token")); //获取header

        return user;
    }
}


个人微信号:zhaoyanjun125 , 欢迎关注

posted @ 2018-05-23 14:42  赵彦军  阅读(8159)  评论(0编辑  收藏  举报