学习使用Spring-boot如何开简易的接口,同时看到这篇文章介绍如何规范接口,做下记录。
很早以前有用过Eclipse来写过简单的接口,那也是入门级的,现在学习spring-boot,嗯,真香!神器!
初学的话直接到spring官网,https://start.spring.io/ 下载最简单的demo,要勾选web依赖
下载后解压,就可以用IDEA打开了,这里如果一直在下载依赖的话,需要settings.xml文件使用阿里的镜像来加快构建,具体百度。
1、最简单的接口
直接在Application类里编写
@RequestMapping("/hello")
public String hello() {
return "Hello Spring";
}
在java环境一切正常的情况下,运行项目,便可以直接访问 http://localhost:8080/hello来验证是否成功了,如果一切顺利的话 会得到输出 字符串 “Hello Spring”;
由于参照 统一接口规范.这篇文章,已经对返回接口做了封装处理,data里的值才是方法return的内容。(忽略乱码)。后面的接口也是如此。
当然这只是最简单的接口,接下来来个稍微复杂点的
2、GetMapping获取对象
@GetMapping("/getUser")
public User getUser() {
User user = new User();
user.setSex(1);
user.setAge(21);
user.setPsw("12345678");
user.setName("123@qq.com");
return (user);
}
这和上面那个都是get形式的接口,运行http://localhost:8080/getUser,会得到如下字符串。
以上是不带参数的GET接口,接下来是纠结我半天的问题了
3、POST请求
同样是 统一接口规范.这篇文章,给post请求添加参数校验之后,写了这样的代码
/**
* 参数是对象,则请求接口时 需要上传raw格式的对象json 此处为 user对象的json格式
*
* @param user
* @return
*/
@PostMapping(value = "/login")
public User login(@RequestBody @Valid User user) {
//验证处理
return user;
}
这个时候用postman来访问的时候,就要命,使用Parms 或者 Body 访问都提示content type **** not supported。
它会提示Required request body is missing: public com.wyl.demospring.beans.User com.wyl.demospring.DemospringApplication.login(com.wyl.demospring.beans.User)]
它会提示 Content type 'multipart/form-data;boundary=--------------------------774540668608363326325112;charset=UTF-8' not supported]
以上两种方式请求POST都不行!!!
百度了很久才搞明白。。。参数列表接收的是User对象,用postman请求的时候需要选择Raw栏 里面字符串得要是User对象的json格式,并且选择 json 。这里也是为难一个一直搞Android的菜鸡程序员啊,对后台知识了解得不多。
上面失败的那两种只适合如下的接口形式,以键值的形式。也就是参数列表是零散的一个个参数字段
/**
* key-value形式
* 参数是以列表形式 则post请求接口时 可以拼接参数 也可以body提交
*
* @param name
* @param psw
* @return
*/
@RequestMapping(value = "/login2", method = RequestMethod.POST)
public String login2(@RequestParam String name, @RequestParam String psw) {
//验证处理
return "登录成功";
}
要掌握各个注解的意思以及用法
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping
以上便是对spring-boot开接口的一个学习记录。