Restful风格使用postman测试接口【增删查改示例】

postman简介

Postman 最早是google的一个插件存在的,但是又google退出中国以及postman团队对工具的定位,主攻pc端app的开发及优化,现在的google插件已经很少再使用了,postman虽然是一个商用软件,但是对于我们普通用户来说,基本功能完全够用的。

Postman 从最初设计上就是为接口测试而生的,所以在程序员中广泛使用,在开发调试网络程序时跟踪一些网络请求,能够高效的帮助后端开发人员独立进行接口测试。

主要功能:

Postman是一款功能强大的网页调试、HTTP请求发送及接口测试用例运行的工具
能够模拟各种HTTP Request如GET、POST 、header、 PUT、 DELETE…等等
请求中还可以发送文件(图片、文本文件等)、额外的header等,实现特定的接口测试
能够高效的帮助后端开发人员独立进行接口测试
Postman提供了云服务,支持数据同步及团队协作等
提供了丰富的HTML格式的报告模板
不仅仅进行接口测试,而且是一个API管理工具

postman官网

https://www.postman.com/
postman的下载就自行了

建表

建表并插入书本数据,这里是使用的navicat工具mysql

DROP TABLE IF EXISTS `tb_books`;
CREATE TABLE `tb_books` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `type` varchar(30) DEFAULT NULL,
  `name` varchar(40) DEFAULT NULL,
  `description` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8mb4;

INSERT INTO `tb_books` VALUES ('1', '测试111-----', '测试书名111', '测试描述111');
INSERT INTO `tb_books` VALUES ('3', '小说', '小说1', '世界名著1');
INSERT INTO `tb_books` VALUES ('4', '小说', '小说2', '世界名著2');
INSERT INTO `tb_books` VALUES ('5', '小说', '小说3', '世界名著3');
INSERT INTO `tb_books` VALUES ('6', '小说', '小说4', '世界名著4');
INSERT INTO `tb_books` VALUES ('7', '小说', '小说5', '世界名著5');
INSERT INTO `tb_books` VALUES ('8', '小说', '小说6', '世界名著6');
INSERT INTO `tb_books` VALUES ('9', '小说', '小说7', '世界名著7');
INSERT INTO `tb_books` VALUES ('10', '小说', '小说8', '世界名著8');
INSERT INTO `tb_books` VALUES ('11', '小说', '小说9', '世界名著9');
INSERT INTO `tb_books` VALUES ('12', '小说', '小说10', '世界名著10');
INSERT INTO `tb_books` VALUES ('13', '小说', '小说11', '世界名著11');
INSERT INTO `tb_books` VALUES ('14', '小说', '小说12', '世界名著12');
INSERT INTO `tb_books` VALUES ('15', '小说', '小说13', '世界名著13');
INSERT INTO `tb_books` VALUES ('16', '小说', '小说14', '世界名著14');
INSERT INTO `tb_books` VALUES ('17', '小说', '小说15', '世界名著15');
INSERT INTO `tb_books` VALUES ('18', '小说', '小说16', '世界名著16');
INSERT INTO `tb_books` VALUES ('19', '小说', '小说17', '世界名著17');
INSERT INTO `tb_books` VALUES ('20', '小说', '小说18', '世界名著18');
INSERT INTO `tb_books` VALUES ('21', '小说', '小说19', '世界名著19');
INSERT INTO `tb_books` VALUES ('22', '小说', '小说20', '世界名著20');
INSERT INTO `tb_books` VALUES ('23', '测试1', '测试书名1', '测试描述1');
INSERT INTO `tb_books` VALUES ('24', '测试11', '测试书名11', '测试描述11');
INSERT INTO `tb_books` VALUES ('25', 'java1', '你好 修改1', '测试内容1');
INSERT INTO `tb_books` VALUES ('47', '测试1', '测试书名1', '测试描述1');
INSERT INTO `tb_books` VALUES ('48', '测试11', '测试书名11', '测试描述11');
INSERT INTO `tb_books` VALUES ('49', 'java', 'springboot1', 'springboot1');
INSERT INTO `tb_books` VALUES ('50', 'java', 'springboot1', 'springboot1');

pom文件

注意有mybatis-plus依赖,因为使用mabatisplus做的

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.0</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

    </dependencies>

yaml文件

主要是连接数据库和设置端口号

server:
  port: 80
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root(用户名)
    password: 密码
  thymeleaf:
    cache: false
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath:mapper/*.xml

model下Book类

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("tb_books")
public class Book {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String type;
    private String name;
    private String description;
}

Dao接口

bookDao 继承自baseMapper,由plus提供

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iwei.model.Book;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface BookDao extends BaseMapper<Book> {
}

service

bookService

import com.baomidou.mybatisplus.extension.service.IService;
import com.iwei.model.Book;

public interface BookService extends IService<Book> {
}

bookServiceImpl
来实现这个接口,至于怎么实现的就不深究了。

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iwei.dao.BookDao;
import com.iwei.model.Book;
import com.iwei.service.BookService;
import org.springframework.stereotype.Service;

@Service
public class BookServiceImpl extends ServiceImpl<BookDao, Book> implements BookService {
}

其实做到这里我们还是可以在测试类中先来测试一下,来看看是否可以从数据库中读取数据,不过应该是成功的。

测试类中测试一下contextLoads

@SpringBootTest
class Springboot0112ApplicationTests {
@Autowired
private BookService bookService;
    @Test
    void contextLoads() {
        List<Book> list= bookService.list();
        for(Book book:list){
            System.out.println(book);
        }
    }

}

编写控制器

bookCnotroller,这里我们使用restful风格,调用bookService中的函数,然后我们在postman中进行get,post,put,delete测试

@RestController
@RequestMapping("/books")//公共部分
public class BookController {
    @Resource
    private BookService bookService;
    @GetMapping
    public List<Book> books(){
        return bookService.list();
    }
    @GetMapping("{id}")//restful风格参数,?后面参数为查询串参数
    public Book book(@PathVariable("id") Integer id){
       return bookService.getById(id) ;
    }
    //Post,Put,Delete用工具发请求
    @PostMapping//借助工具使用postman或者swagger3,地址栏没办法测
    public boolean add(@RequestBody Book book){
        boolean flag =bookService.save(book);
        return flag;
    }
    @PutMapping("{id}")//修改
    public boolean update(@PathVariable Integer id,@RequestBody Book book){
        book.setId(id);
        boolean flag1=bookService.updateById(book);
        return flag1;
    }
    @DeleteMapping("{id}")//删除
    public boolean delete(@PathVariable Integer id){
        boolean flag2=bookService.removeById(id);
        return flag2;
    }
}

postman中测试

获取数据(GET)

在这里插入图片描述

增加(POST)

注意json格式
在这里插入图片描述

修改(PUT)

在这里插入图片描述

删除(DEL)

在这里插入图片描述文章来源地址:https://www.uudwc.com/A/DNjZr/

原文地址:https://blog.csdn.net/m0_67587248/article/details/130393474

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇2023年09月12日 06:07
中南大学图书馆座位管理系统网页版早上六点定时登录预约脚本Windows(localhost)/Linux(server)python+selenium
下一篇 2023年09月12日 06:10