前后端交互案例,图书管理系统

先引入前端代码运行看看是否有问题

图书管理系统

定义前后端交互接口

1.登录

URL : /user/login

参数 : userName=?&password=?

响应 : true/false

2.图书列表展示 :

URL : /book/getBookList

参数 : 无

响应 : List<BookInfo>

后端代码如下:

package com.example.book;

import lombok.Data;

import java.math.BigDecimal;

@Data
public class BookInfo {
    private Integer id;
    private String bookName;
    private String author;
    private Integer count;
    private BigDecimal price;
    private String publish;
    private Integer status;//0表示可借阅,1表示不可借阅
    private String statusCN;
}
package com.example.book;

import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

@RequestMapping("/user")
@RestController
public class UserController {
    @RequestMapping("/login")
    public Boolean login(String userName, String password, HttpSession session){
        //校验参数
        if (!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)){
            return false;
        }
        //验证账号密码是否正确
        if ("aaa".equals(userName)&&"aaa".equals(password)){
            //这里不要写成 if(userName.equals("aaa")){}这种写法,因为如果userName为null,会报空指针异常
            //这是开发习惯,需要养成
            //存Session
            session.setAttribute("userName",userName);
            //账号密码正确
            return true;
        }
        return false;
    }
}
package com.example.book;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.awt.print.Book;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@RequestMapping("/book")
@RestController
public class BookController {
    @RequestMapping("/getBookList")
    public List<BookInfo> getBookList(){
        //1.获取图书的数据
        //2.对图书的数据进行一些处理
        //3.返回数据
        //4.mock 表示虚拟的假数据,专业术语
        List<BookInfo> bookInfos = mockData();
        for (BookInfo bookInfo:bookInfos){
            if (bookInfo.getStatus()==1){
                bookInfo.setStatusCN("可借阅");
            }else{
                bookInfo.setStatusCN("不可借阅");
            }
        }
        return bookInfos;
    }

    private List<BookInfo> mockData() {
        //优化小tip:对于已知的数据量,或者大概知道这个集合的数据量时,创建List时,建议指定初始化容量
        List<BookInfo> bookInfos = new ArrayList<>(15);
        for (int i = 0;i<15;i++){
            BookInfo bookInfo = new BookInfo();
            bookInfo.setId(i);
            bookInfo.setBookName("图书"+i);
            bookInfo.setAuthor(("作者"+i));
            bookInfo.setCount(new Random().nextInt(200));
            bookInfo.setPrice(new BigDecimal(new Random().nextInt(100)));
            bookInfo.setPublish("出版社"+1);
            bookInfo.setStatus(i%5==0?2:1);
            bookInfos.add(bookInfo);
        }
        return bookInfos;
    }
}

然后我们在postman 先进行测试看看有没有问题,返回 true 那就是没问题了

另一个也没问题

然后对前端的代码进行补充,这样就做完了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值