Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现 (2)

若是存在某些敏感字段不需要被返回,在实体类的字段中添加JsonIgnore注解(注意:此JsonIgnore注解为spring boot内置jackson框架自带)

public class JacksonAnnotation { /** * 用户名 */ @JsonProperty("name") private String username; /** * 身份证号 */ @JsonIgnore private String idCard; }

Fastjson使用 @JSONField(serialize = false),起关键作用的是serialize = false

mock注解

smart-doc会在生成的文档的例子中进行自动随机赋值,如下图

Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现

如果不想随机赋值,可以使用mock注解指定例子中的数据

Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现

ignore注解

这个是smart-doc自带的注解,写在实体类字段的注释上,生成的API文档就会忽略此字段

Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现

更多详情,请参考官方文档

具体编码

spring boot中其实内置了GetMapping、PostMapping、PutMapping、DeleteMapping,分别对应的不同的请求方式,如果使用了以上注解,那么发送url请求的方式也是应该相对应,否则服务器不会进行数据的返回

1.指定id

想要通过:9200/shunbang/api/user/users/1查询指定id用户信息

使用PathVariable注解

/** * 查询指定id的用户信息 * * @param id 用户id * @return 用户信息 */ @GetMapping("{id}") public User selectByPk(@PathVariable("id") Integer id) { return userMapper.selectOne(new QueryWrapper<User>().eq("user_id", id)); } 2.limit限制

想要通过:9200/shunbang/api/user/users?limit=10来获得前几条记录,limit此参数是可选的,使用RequestParam注解

当用户没有输入limit参数,则显示返回所有的数据,有的话则进行数据的限制,offset也是同理,之后便不多说了

/** * 查询所有用户 * * @return 用户列表的json */ @GetMapping("users") public List<User> selectAll(@RequestParam(required = false) Integer limit) { if (limit == null) { return userMapper.selectList(null); } else { System.out.println(limit); return userMapper.selectList(null); } } 3.传递实体类

原本我是想要通过:9200/shunbang/api/user/update?jsonData=xx这样传递实体类的json数据,之后由后台接收json数据,并再将json数据转为实体类对象,调用update方法,进行表记录的update

其实,有个方法比上面的方法更简单,使用RequestBody注解,之后进行put的请求,将json数据直接通过body传递

@PutMapping("update") public boolean updateUser(@RequestBody User user) { return user.updateById(); } Java发送url请求 HttpURLConnection conn =new URL("address").openConnection(); conn.setRequestMethod("PUT"); // 可以根据需要 提交 GET、POST、DELETE、PUT等http提供的功能 conn.setRequestProperty("Content-Type", " application/json");//设定 请求格式 json,也可以设定xml格式的

上述是原生的,之后我会在补充使用okhttp框架进行相关的接口申请数据

我是使用的postwoman进行API的测试

Spring框架学习笔记(9)——API接口设计相关知识及具体编码实现

参考

smart-doc
SpringBoot RestFul风格API接口开发
Post 方法参数写在body中和写在url中有什么区别?知乎严振杰回答

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsspys.html