springboot2.0入门(三)----定义编程风格+jackjson使用+postMan测试

一、RESTFul风格API

  1、优点:   

  1. )看Url就知道要什么资源
  2. )看http method就知道针对资源干什么
  3. )看http status code就知道结果如何

HTTP方法体现对资源的操作:

  GET : 获取资源
  POST : 添加资源
  PUT : 修改资源
  DELETE : 删除资源

二、代码演示:

/**
 * @author Levi
 * @date 2019/9/18 9:31
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Animal {
        private  String name;
        private  Integer type;
        private  String num;
        private  Long id;
        private Date birthDate;
}

新建Animal类,使用注解,包含设置get/set方法、全部参数构造器、无参数构造器、builder快速创建对象

/**
 * @author Levi
 * @date 2019/9/18 9:36
 */
@Slf4j
@RestController
@RequestMapping("/rest")
public class AnimalController {


    @RequestMapping(value = "/animals", method = POST, produces = "application/json")
    public AjaxResponse saveArticle(@RequestBody Animal animal) {

        log.info("saveArticle:{}",animal);
        return  AjaxResponse.success(animal);
    }

    @RequestMapping(value = "/animals/{id}", method = DELETE, produces = "application/json")
    public AjaxResponse deleteArticle(@PathVariable Long id) {

        log.info("deleteAnimals:{}",id);
        return AjaxResponse.success(id);
    }


    @RequestMapping(value = "/animals/{id}", method = PUT, produces = "application/json")
    public AjaxResponse updateArticle(@PathVariable Long id, @RequestBody Animal animal) {
        animal.setId(id);

        log.info("updateArticle:{}",animal);
        return AjaxResponse.success(animal);
    }

    @RequestMapping(value = "/animals/{id}", method = GET, produces = "application/json")
    public AjaxResponse getArticle(@PathVariable Long id) {

        Animal animal = Animal.builder().id(1L).name("levi").build();
        return AjaxResponse.success(animal);
    }

}

 

新建 AnimalController,用postMan做测试:

 

 

 新建一个post请求(添加),返回创建的对象;

@RestController   =  @Controller   +  @ResponseBody
@Slf4j
@Controller
@RequestMapping("/rest")
public class AnimalController {


    @RequestMapping(value = "/animals", method = POST, produces = "application/json")
    public @ResponseBody  AjaxResponse saveArticle(@RequestBody Animal animal) {

        log.info("saveArticle:{}",animal);
        return  AjaxResponse.success(animal);
    }

 

上述注解可以改为上面的代码所示

 

@PathVariable  参数说明

 

 

 

 

 delete请求例子

三、json配置:

         springboot默认json工具为:jackjson

  各种json工具性能对比:https://blog.csdn.net/accountwcx/article/details/50252657

  @JsonIgnore 排除属性不做序列化与反序列化

  @JsonProperty 为属性换一个名
  @JsonPropertyOrder(value={"pname1","pname2"}) 改变json子属性的默认定义的顺序
  @JsonInclude(JsonInclude.Include.NON_NULL) 排除为空的元素不做序列化反序列化
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 指定属性格式

 

全局时间配,在yml文件中配置,避免在请求时间的时候,格式不一致报错,

spring: 
    jackson:
        date-format: yyyy-MM-dd HH:mm:ss
        time-zone: GMT+8

实际代码演示:

 

无法识别时间格式:

 

 

 yml中添加配置,重启项目(一般修改配置文件需要重启项目,否则热部署一般是可以使用的)

 

没中间的T报错,有就不报错(无解)

 

 这样不报错

 

 @JsonIgnore 排除属性不做序列化与反序列化

  @JsonProperty 为属性换一个名
  @JsonPropertyOrder(value={"pname1","pname2"}) 改变json子属性的默认定义的顺序
  @JsonInclude(JsonInclude.Include.NON_NULL) 排除为空的元素不做序列化反序列化

  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 指定属性格式

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@JsonPropertyOrder(value={"id","type"})//更换变量显示顺序
public class Animal {
        @JsonIgnore      //不支持序列化,不能传参
        private  String name;
        @JsonProperty("type1")
        private  Integer type;
        //空值不返回
        @JsonInclude(JsonInclude.Include.NON_NULL)
        private  String num;
        private  Long id;
        private Date birthDate;
        List<Animal> animalList;
        private Animal animal2;
}

 

java实体类:

 

 请求参数

 

 

 返回值

本节到此结束!!!

 

转载于:https://www.cnblogs.com/liweiweicode/p/11622313.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 创建SpringBoot项目 首先,在IDE中创建一个SpringBoot项目,选择Maven作为构建工具,并在pom文件中添加SpringBoot和mybatis-plus的依赖。 2. 配置数据库连接 在application.properties文件中添加数据库连接信息,包括url、username、password等。 ``` spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3. 创建实体类和mapper 创建实体类和对应的mapper接口,使用mybatis-plus的注解来简化SQL操作。例如: ```java @Data @TableName("user") // 表名 public class User { @TableId(value = "id", type = IdType.AUTO) // id字段自增 private Long id; @TableField("name") // name字段 private String name; @TableField("age") // age字段 private Integer age; } ``` ```java public interface UserMapper extends BaseMapper<User> { } ``` 4. 编写业务逻辑 根据具体需求编写业务逻辑代码,例如实现对用户的增删改查操作。使用mybatis-plus的CRUD方法来简化操作。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public boolean saveUser(User user) { return userMapper.insert(user) > 0; } @Override public boolean updateUser(User user) { return userMapper.updateById(user) > 0; } @Override public boolean deleteUser(Long id) { return userMapper.deleteById(id) > 0; } @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } } ``` 5. 编写Controller层 编写Controller层代码,处理HTTP请求并调用对应的业务逻辑方法。使用@RestController注解来标注该类是一个REST风格的控制器。 ```java @RestController public class UserController { @Autowired private UserService userService; @PostMapping("/user") public Result saveUser(@RequestBody User user) { boolean result = userService.saveUser(user); return result ? Result.success() : Result.error("保存用户失败"); } @PutMapping("/user") public Result updateUser(@RequestBody User user) { boolean result = userService.updateUser(user); return result ? Result.success() : Result.error("更新用户失败"); } @DeleteMapping("/user/{id}") public Result deleteUser(@PathVariable Long id) { boolean result = userService.deleteUser(id); return result ? Result.success() : Result.error("删除用户失败"); } @GetMapping("/user/{id}") public Result getUserById(@PathVariable Long id) { User user = userService.getUserById(id); return Result.success(user); } @GetMapping("/user") public Result getUserList() { List<User> userList = userService.getUserList(); return Result.success(userList); } } ``` 6. 测试接口 启动SpringBoot应用程序,使用Postman工具测试接口,确认接口功能正常。 以上便是搭建SpringBoot mybatis-plus项目的基本流程。通过使用mybatis-plus来简化SQL操作,可以极大的提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值