基于Spring boot 的简单 REST API
一、产品介绍
基于培训的加法基础上,扩充到了有理数的四则运算(两个未知数)。尝试借助群内文档实现判断数据是否溢出,但未实现。
使用说明:在浏览器中输入
加法:localhost:8080/add?a=(具体值)&b=(具体值)
减法:localhost:8080/minus?a=(具体值)&b=(具体值)
乘法:localhost:8080/times?a=(具体值)&b=(具体值)
除法:localhost:8080/divide?a=(具体值)&b=(具体值)
取模:localhost:8080/modulo?a=(具体值)&b=(具体值)
二、学习历程
1.了解@GetMaping和@postMapping
两者均为组合注解
@GetMapping = @requestMapping(method = RequestMethod.GET)
浏览器发送Get请求有
1.直接在地址栏中输入地址
2.点击链接
3.表单默认提交方式
@PostMapping = @requestMapping(method =RequestMethod.POST)
2.尝试判断数据是否溢出
根据 https://blog.csdn.net/qq_33330687/article/details/81626157 中
给出的方法,个人理解为Java写好了判断数据相加判断的函数,故首先尝试直接调
用
@GetMapping("/add")
public int add (@RequestParam int a , @RequestParam int b){
int r = a + b;
return Math.addExact(a, b);
应该是个人原因(不会用函数),使用postman调试后并没有出现Java关于数据
溢出的相关语句(查自https://blog.csdn.net/allway2/article/details/117631597)
而后直接借鉴(复制bushi 网址中给出的if判断方法,发现在实际程序编写中并不能
实现用0和1来代表数字的符号位,并且不能实现用0和1来代表布尔类型,以起到
判断作用。(个人理解,可能是太菜了)
@GetMapping("/add")
public int add (@RequestParam int a , @RequestParam int b){
int r = a + b;
if (((a ^ r) & (b ^ r)) < 0){
System.out.println("超出了int的范围");
}
return a + b;
}
三、代码
public class Main {
@GetMapping("/add")
public int add (@RequestParam int a , @RequestParam int b){
int r = a + b;
return a + b;
}
@GetMapping("/divide")
public double divide (@RequestParam double a , @RequestParam double b){
return a/b;}
@GetMapping("/minus")
public double minus (@RequestParam double a , @RequestParam double b){
return a-b;}
@GetMapping("/times")
public double times (@RequestParam double a , @RequestParam double b){
return a*b;}
@GetMapping("/modulo")
public double modulo (@RequestParam double a , @RequestParam double b){
return a%b;}
}