前言
Restful Web Service简述;基于通用Mapper基于Rest编写api接口;使用PostMan调试Restful接口。
文章目录
一、Restful Web Service
1.1 Restful Web Service简述
- 通信方式
- 信息传递
- 无状态
- 独立性
1.2 Rest设计规范
GET -> /order/{id} -> /getOrder?id=1001
POST -> /order -> /saveOrder
PUT -> /order/{id} -> /modifyOrder
DELETE -> /order/{id} -> /deleteOrder?id=1001
二、基于通用Mapper基于Rest编写api接口
2.1 定义Mapper接口
import com.imooc.my.mapper.MyMapper;
import com.imooc.pojo.Student;
public interface StudentMapper extends MyMapper<Student> {
}
2.2 定义mapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.imooc.mapper.StudentMapper" >
<resultMap id="BaseResultMap" type="com.imooc.pojo.Student" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
</resultMap>
</mapper>
2.3 定义pojo类
import javax.persistence.Id;
public class Student {
@Id
private Integer id;
private String name;
private Integer age;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return name
*/
public String getName() {
return name;
}
/**
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return age
*/
public Integer getAge() {
return age;
}
/**
* @param age
*/
public void setAge(Integer age) {
this.age = age;
}
}
2.4 定义Service接口
import com.imooc.pojo.Student;
public interface StudentService {
public Student getStudentIndo(int id);
public void saveStudent();
public void updateStudent(int id);
public void deleteStudent(int id);
}
2.5 定义Service实现类Impl
import com.imooc.mapper.StudentMapper;
import com.imooc.pojo.Student;
import com.imooc.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Service
public class StudentServiceImpl implements StudentService {
// 开发工具问题:Settings->Editor->Code Style->inspections->Spring->Spring Core->Core->Autowiring for Bean Class 取消勾选
@Autowired
private StudentMapper studentMapper;
@Transactional(propagation = Propagation.SUPPORTS)
@Override
public Student getStudentIndo(int id) {
return studentMapper.selectByPrimaryKey(id);
}
@Transactional(propagation = Propagation.REQUIRED)
@Override
public void saveStudent() {
Student student = new Student();
student.setName("DONGJ");
student.setAge(16);
studentMapper.insert(student);
}
@Transactional(propagation = Propagation.REQUIRED)
@Override
public void updateStudent(int id) {
Student student = new Student();
student.setId(id);
student.setName("DONGJ");
student.setAge(18);
studentMapper.updateByPrimaryKey(student);
}
@Transactional(propagation = Propagation.REQUIRED)
@Override
public void deleteStudent(int id) {
studentMapper.deleteByPrimaryKey(id);
}
}
2.5 定义Controller
import com.imooc.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
//@Controller
@ApiIgnore
@RestController
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/getStudent")
public Object getStudent(int id) {
return studentService.getStudentIndo(id);
}
/**
* TODO 接口幂等性
* @return
*/
@PostMapping("/saveStudent")
public Object saveStudent() {
studentService.saveStudent();
return "OK";
}
@PostMapping("/updateStudent")
public Object updateStudent(int id) {
studentService.updateStudent(id);
return "OK";
}
@PostMapping("/deleteStudent")
public Object saveStudent(int id) {
studentService.deleteStudent(id);
return "OK";
}
}
三、使用PostMan调试Restful接口
3.1 PostMan简介
Postman 是一种常用的接口测试工具,可以发送几乎所有类型的HTTP请求。Postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。官网地址:https://www.postman.com/
总结
Restful Web Service简述;基于通用Mapper基于Rest编写api接口;使用PostMan调试Restful接口。