springboot基础http接口解析

本文介绍springboot基础的httpboot接口的使用

注解说明

1、GET请求
1、单一参数@RequestMapping(path = “/{id}”, method = RequestMethod.GET)

  1. public String getUser(@PathVariable String id ) {}

  2. @RequestMapping(path = “/{depid}/{userid}”, method = RequestMethod.GET) 可以同时指定多个提交方法
    getUser(@PathVariable(“depid”) String departmentID,@PathVariable(“userid”) String userid)

  3. 一个顶俩
    @GetMapping = @RequestMapping(method = RequestMethod.GET)
    @PostMapping = @RequestMapping(method = RequestMethod.POST)
    @PutMapping = @RequestMapping(method = RequestMethod.PUT)
    @DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)

  4. @RequestParam(value = “name”, required = true)
    可以设置默认值,比如分页

  5. @RequestBody 请求体映射实体类
    需要指定http头为 content-type为application/json charset=utf-8

  6. @RequestHeader 请求头,比如鉴权
    @RequestHeader(“access_token”) String accessToken

  7. HttpServletRequest request自动注入获取参数

示例代码

@RestController
public class GetController {
    private Map<String, Object> params = new HashMap<>();

    /**
     * 功能描述:测试restful协议,从路径中获取字段
     * @param cityId
     * @param userId
     * @return
     */
    @RequestMapping(path="/{city_id}/{user_id}", method = RequestMethod.GET)
    public Object fingUser(@PathVariable("city_id") String cityId, @PathVariable("user_id") String userId) {

        params.clear();
        params.put("cityId", cityId);
        params.put("userId", userId);

        return  params;
    }

    /**
     * 功能描述:测试GetMapping
     * @param from
     * @param size
     * @return
     */
    @GetMapping(value="/v1/page_user1")
    public Object pageUser(int  from, int size ){
        params.clear();
        params.put("from", from);
        params.put("size", size);

        return params;

    }


    /**
     * 功能描述:默认值,是否必须的参数
     * @param from
     * @param size
     * @return
     */
    @GetMapping(value="/v1/page_user2")
    public Object pageUserV2(@RequestParam(defaultValue="0",name="page") int  from, int size ){

        params.clear();
        params.put("from", from);
        params.put("size", size);

        return params;

    }




    /**
     * 功能描述:bean对象传参
     * 注意:1、注意需要指定http头为 content-type为application/json
     * 		2、使用body传输数据
     * @param user
     * @return
     */
    @RequestMapping("/v1/save_user")
    public Object saveUser(@RequestBody User user){
        params.clear();
        params.put("user", user);
        return params;
    }


    /**
     * 功能描述:测试获取http头信息
     * @param accessToken
     * @param id
     * @return
     */
    @GetMapping("/v1/get_header")
    public Object getHeader(@RequestHeader("access_token") String accessToken, String id){
        params.clear();
        params.put("access_token", accessToken);
        params.put("id", id);
        return params;
    }

    @GetMapping("/v1/test_request")
    public Object testRequest(HttpServletRequest request){
        params.clear();
        String id = request.getParameter("id");
        params.put("id", id);
        return params;
    }

}

其他请求示例

//测试http协议的post,del,put请求
@RestController
public class OtherHttpController {


    private Map<String, Object> params = new HashMap<>();


    /**
     * 功能描述:测试PostMapping
     *
     * @param accessToken
     * @param id
     * @return
     */
    @PostMapping("/v1/login")
    public Object login(String id, String pwd) {
        params.clear();
        params.put("id", id);
        params.put("pwd", pwd);
        return params;
    }


    @PutMapping("/v1/put")
    public Object put(String id) {
        params.clear();
        params.put("id", id);
        return params;
    }


    @DeleteMapping("/v1/del")
    public Object del(String id) {
        params.clear();
        params.put("id", id);
        return params;
    }

}

你可能感兴趣的:(springboot,springboot,http)