西部数码做网站,杭州开发网站的公司哪家好,合肥网站优化价格,电脑好玩的网页游戏推荐一、前言
后端的第一天感觉难度就上来了#xff0c;可能是基础太过薄弱了吧。目前看视频已经有点跟不上了#xff0c;果然15天想要拿下还是太勉强了点。30天还差不多。不知道读者们有没有好好的去学这方面的知识#xff0c;没有什么是学不会的#xff0c;关键是坚持。
Po…一、前言
后端的第一天感觉难度就上来了可能是基础太过薄弱了吧。目前看视频已经有点跟不上了果然15天想要拿下还是太勉强了点。30天还差不多。不知道读者们有没有好好的去学这方面的知识没有什么是学不会的关键是坚持。
Postman这款应用一定要好好的去熟悉一下挺重要的。
明天试着做一下综合案例ヾ(◍°∇°◍)。 二、Postman简介
Postman 是一个流行的 API 开发工具主要用于测试、调试和管理 API。它提供了一个用户友好的界面使开发者能够轻松地发送 HTTP 请求、查看响应以及分析请求的结果。以下是 Postman 的主要特点和功能
发送 HTTP 请求
Postman 允许用户发送各种类型的 HTTP 请求如 GET、POST、PUT、DELETE 等可以设置请求头、请求体、参数等。
组织和管理请求
用户可以创建多个请求集合每个集合可以包含多个请求方便组织和管理不同的 API 请求。
自动化测试
Postman 支持创建测试脚本可以自动化执行 API 的测试验证响应的正确性和性能。
环境和变量
可以设置环境变量和全局变量用于在不同的环境中管理 API 的请求和测试。
实时调试
提供实时的响应预览和格式化方便开发者查看 API 返回的数据支持多种数据格式如 JSON、XML、HTML 等。
协作与分享
Postman 允许用户分享请求和集合方便团队成员协作还可以导出和导入请求集合以便备份或分享给其他开发者。
集成其他工具
支持与其他开发工具和服务集成如 Swagger、GitHub、Jenkins 等扩展了其功能和应用场景。
三、postman的安装
第一步访问官网
Postman API Platform | Sign Up for Freehttps://www.postman.com/
第二步下载 四、各种类型的请求
温馨提示此部分只进行代码上的讲解方法部分在全套源代码中。
1. 简单实体参数
//1.简单实体参数RequestMapping(/simpleParam)public String simpleParam(String name,int age) {System.out.println(name:age);return OK;}
分析
注解 RequestMapping
RequestMapping(/simpleParam) 指定了处理的 URL 路径为 /simpleParam。当有请求到达这个路径时Spring MVC 将调用 simpleParam 方法来处理请求。
方法签名
public String simpleParam(String name, int age) 是控制器方法的签名。它接收两个参数nameString 类型和 ageint 类型。
方法体
方法体内首先使用 System.out.println(name:age); 打印接收到的 name 和 age 参数值到控制台。然后方法返回字符串 OK。
参数绑定
Spring MVC 会根据请求中的参数名字和方法的参数名字进行自动绑定。例如如果有一个 HTTP GET 请求发送到 /simpleParam并且请求参数为 nameJohn 和 age30那么 Spring MVC 将自动将 name 绑定为 John将 age 绑定为整数 30。
返回值
控制器方法的返回值为一个字符串 OK。在 Spring MVC 中这个字符串通常表示请求处理成功并返回给客户端。
结果展示 2. 复杂实体参数
//2.复杂实体参数RequestMapping(/complacePojo)public String complacePojo(user user){System.out.println(user);return OK;}
代码分析 1.RequestMapping(/complacePojo) 指定了处理的 URL 路径为 /complacePojo。当有请求到达这个路径时Spring MVC 将调用 complacePojo 方法来处理请求。2.public String complacePojo(user user) 是控制器方法的签名。它接收一个名为 user 的参数类型为 user。这里的 user 可能是一个自定义的 Java Bean 类用于封装用户提交的数据。3.方法体内首先使用 System.out.println(user); 打印接收到的 user 对象到控制台。 然后方法返回字符串 OK。 4.Spring MVC 将尝试将 HTTP 请求中的参数与 user 类的属性进行自动绑定。例如如果请求提交了 user 对象的属性 name 和 ageSpring MVC 将会尝试将这些值设置到 user 对象的对应属性上。5.控制器方法的返回值为一个字符串 OK。在 Spring MVC 中这个字符串通常表示请求处理成功并返回给客户端。 结果展示 3. 数组参数
//3.数组参数RequestMapping(/arrayParam)public String arrayParam(String[]hobby){System.out.println(Arrays.toString(hobby));return OK;}
代码分析 public String arrayParam(String[] hobby) 是控制器方法的签名。它接收一个名为 hobby 的参数类型为 String[]。这表示它可以接收一个名为 hobby 的数组作为 HTTP 请求的参数。System.out.println(Arrays.toString(hobby)); 打印接收到的 hobby 数组内容到控制台。这行代码将数组转换为字符串形式并输出以便查看实际接收到的数据。Spring MVC 将尝试将 HTTP 请求中的参数绑定到 hobby 数组上。例如如果请求中包含多个名为 hobby 的参数如 hobbyreading、hobbytravelingSpring MVC 将会将这些值存储在 hobby 数组中。这种方法适用于接收客户端传递的数组形式的数据例如多选框选择、多个复选框的值等。通过定义方法参数为数组Spring MVC 能够直接将这些值绑定到数组元素中。 注意事项
确保请求中的参数命名正确并且与方法参数的名称相匹配。Spring MVC 将根据参数名进行自动绑定因此名称不匹配可能导致绑定失败或错误的数据处理。
结果展示 4. 集合参数
//4.集合传参RequestMapping(/ListParam)public String ListParam(RequestParam ListStringhobby){System.out.println(hobby);return OK;}
代码分析 public String ListParam(RequestParam ListString hobby) 是控制器方法的签名。它接收一个名为 hobby 的参数类型为 ListString。使用 RequestParam 注解明确指定了要从请求中获取的参数名为 hobby。Spring MVC 将尝试将 HTTP 请求中名为 hobby 的参数的多个值绑定到 hobby 列表中。例如如果请求中包含多个 hobby 参数如 hobbyreadinghobbytravelingSpring MVC 将这些值存储在 hobby 列表中。这种方法适用于需要接收多个同名参数的情况例如多选框选择、多个复选框的值等。通过定义方法参数为 ListString 类型Spring MVC 能够直接将这些值绑定到列表中。 结果展示 5. 日期和时间参数
//5.日期时间传参RequestMapping(/dateParam)public String dateParam(DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss) LocalDateTime updateTime){System.out.println(updateTime);return OK;}
代码分析 public String dateParam(DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss) LocalDateTime updateTime) 是控制器方法的签名。它接收一个名为 updateTime 的参数类型为 LocalDateTime。使用 DateTimeFormat 注解指定了日期时间的格式为 yyyy-MM-dd HH:mm:ss以便正确解析请求中的日期时间字符串。Spring MVC 将尝试将 HTTP 请求中的日期时间参数按照指定的格式 yyyy-MM-dd HH:mm:ss 解析为 LocalDateTime 对象并将其传递给 updateTime 参数。这种方法适用于需要接收特定格式的日期时间参数的情况例如记录最后更新时间、指定某个事件发生的时间等。 注意事项
确保请求中的日期时间字符串格式与指定的 DateTimeFormat 注解中的格式相匹配否则会导致解析失败或者获得不正确的数据。
结果展示 6. Json参数
//6.Json参数RequestMapping(/jsonParam)public String jsonParam(RequestBody user user){System.out.println(user);return OK;}
代码分析 public String jsonParam(RequestBody user user) 是控制器方法的签名。它使用 RequestBody 注解来指示 Spring MVC 从请求体中获取 JSON 数据并尝试将其转换为 user 对象。这里的 user 类型是自定义的通常应该包含与请求体 JSON 结构相匹配的字段。RequestBody 注解告诉 Spring MVC 从 HTTP 请求的主体中提取数据并尝试将其转换为 user 对象。Spring MVC 使用默认的 JSON 转换器通常是 Jackson来完成从 JSON 到 Java 对象的反序列化过程。这种方法适用于需要接收复杂结构的 JSON 数据的情况例如通过 REST API 提交用户信息、创建资源等操作。 注意事项
确保请求的 JSON 结构与 user 对象的字段名和类型相匹配否则反序列化可能会失败或者得到不正确的数据。
user 类型必须有默认的无参构造函数以便 JSON 反序列化库可以实例化对象。
结果展示 7. 单个路径参数
//7.单个路径参数RequestMapping(/pathParam/{id})public String pathParam(PathVariable int id){System.out.println(id);return OK;}
代码分析 RequestMapping(/pathParam/{id}) 指定了处理的 URL 路径为 /pathParam/{id}。{id} 是一个占位符表示这个路径可以接受一个名为 id 的变量作为参数。当有符合这个路径的 GET 请求到达时Spring MVC 将调用 pathParam 方法来处理请求。PathVariable int id 注解在方法参数上指示 Spring MVC 将 URL 中的 {id} 值映射到方法的 id 参数上。在这个例子中Spring MVC 将提取路径中的 id 值并将其转换为 int 类型然后传递给方法 pathParam。Spring MVC 能够根据 URL 路径中的占位符 {id}将其解析为方法参数 id。这使得我们可以在路径中传递参数而不是在请求体或查询参数中传递。这种方法适用于需要从 URL 中获取特定信息的情况例如获取资源的详细信息根据 ID 查询特定记录等操作。 注意事项
确保路径中的变量名 {id} 与 PathVariable 注解中的参数名 id 保持一致以确保正确的参数绑定。
如果路径参数类型不匹配例如路径中是数字但方法参数是字符串Spring MVC 可能会抛出类型转换错误或者返回 404 错误。
结果展示 8. 多个路径参数
//8.多个路径参数RequestMapping(pathParam2/{id}/{name})public String pathParam2(PathVariable int id,PathVariable String name){System.out.println(id:name);return OK;}
代码分析
基本原理和单个路径大致相同
注意事项
确保路径中的变量名 {id} 和 {name} 与 PathVariable 注解中的参数名 id 和 name 保持一致以确保正确的参数绑定。
结果展示 五、响应
一般应用的时候为了防止太过混乱会有一个统一的标准因为只是认识所以在这里就不介绍了想要了解的读者可以去看源代码。里面包含这一部分。
1. 响应-字符串
//9.字符串RequestMapping(/strParam)public String strParam(){System.out.println(Hello World);return OK;} System.out.println(Hello World); 这行代码会在控制台打印输出 Hello World。它用于在方法被调用时输出一条消息到控制台这在调试和跟踪代码执行流程时非常有用。这种方法适用于需要执行某些逻辑或操作但不需要返回动态生成的内容或者模板渲染的情况。例如可以在这里执行一些后台任务、记录日志或者简单的逻辑处理。如果方法的返回值是 OKSpring MVC 将会尝试查找与请求对应的视图或者处理下一个处理程序具体取决于应用程序的配置和处理链的设置。 2. 响应-数组
//10.数组RequestMapping(/arrParam)public Address arrParam(){Address address new Address();address.setProvince(河南);address.setCity(郑州);return address;} Address address new Address(); 创建了一个 Address 对象假设这是一个自定义的 Java 类用来表示地址信息。address.setProvince(河南); 设置地址对象的省份为 河南。address.setCity(郑州); 设置地址对象的城市为 郑州。return address; 返回这个填充了省份和城市信息的 Address 对象。控制器方法返回的是一个 Address 对象。在 Spring MVC 中如果方法返回的是一个对象Spring MVC 会自动将其转换为 JSON 格式默认情况下并作为 HTTP 响应体返回给客户端。这种方法适用于需要从服务器端返回某个 Java 对象的情况比如获取用户地址信息、商品信息等。客户端可以通过 HTTP GET 请求访问 /arrParam 路径并获取到 JSON 格式的地址信息。Address 类必须是可序列化的并且通常需要正确实现 toString()、equals() 和 hashCode() 方法以便在转换为 JSON 格式时能够正确工作。在实际应用中可以使用更复杂的对象结构例如包含多个属性的对象甚至嵌套对象Spring MVC 会自动处理这些情况并将其转换为相应的 JSON 格式。 3. 响应-集合
//11.集合RequestMapping(/listParam)public ListAddress listParam(){ListAddress list new ArrayList();Address address new Address();address.setProvince(山东);address.setCity(菏泽);Address address1 new Address();address1.setProvince(陕西);address1.setCity(西安);list.add(address);list.add(address1);return list;} ListAddress list new ArrayList(); 创建了一个 ArrayList 对象 list用来存储 Address 对象。创建了两个 Address 对象 address 和 address1分别代表不同的地址信息。address 的省份设置为 山东城市设置为 菏泽。address1 的省份设置为 陕西城市设置为 西安。list.add(address); 将 address 对象添加到 list 列表中。list.add(address1); 将 address1 对象添加到 list 列表中。控制器方法返回的是一个 ListAddress 对象即包含两个填充了省份和城市信息的 Address 对象的列表。在 Spring MVC 中这些对象会被自动转换为 JSON 数组格式并作为 HTTP 响应体返回给客户端。 六、全套源代码
目录 text1代码
package com.von.demo5;import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import pojo.Address;
import pojo.user;import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;//请求处理类
RestController
public class text1 {//springboot方式请求//1.简单实体参数RequestMapping(/simpleParam)public String simpleParam(String name,int age) {System.out.println(name:age);return OK;}//2.复杂实体参数RequestMapping(/complacePojo)public String complacePojo(user user){System.out.println(user);return OK;}//3.数组参数RequestMapping(/arrayParam)public String arrayParam(String[]hobby){System.out.println(Arrays.toString(hobby));return OK;}//4.集合传参RequestMapping(/ListParam)public String ListParam(RequestParam ListStringhobby){System.out.println(hobby);return OK;}//5.日期时间传参RequestMapping(/dateParam)public String dateParam(DateTimeFormat(pattern yyyy-MM-dd HH:mm:ss) LocalDateTime updateTime){System.out.println(updateTime);return OK;}//6.Json参数RequestMapping(/jsonParam)public String jsonParam(RequestBody user user){System.out.println(user);return OK;}//7.单个路径参数RequestMapping(/pathParam/{id})public String pathParam(PathVariable int id){System.out.println(id);return OK;}//8.多个路径参数RequestMapping(pathParam2/{id}/{name})public String pathParam2(PathVariable int id,PathVariable String name){System.out.println(id:name);return OK;}
}text2代码
package com.von.demo5;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import pojo.Address;import java.util.ArrayList;
import java.util.List;
RestController
public class text2 {//测试响应数据//9.字符串RequestMapping(/strParam)public String strParam(){System.out.println(Hello World);return OK;}//10.数组RequestMapping(/arrParam)public Address arrParam(){Address address new Address();address.setProvince(河南);address.setCity(郑州);return address;}//11.集合RequestMapping(/listParam)public ListAddress listParam(){ListAddress list new ArrayList();Address address new Address();address.setProvince(山东);address.setCity(菏泽);Address address1 new Address();address1.setProvince(陕西);address1.setCity(西安);list.add(address);list.add(address1);return list;}
}text3代码
package com.von.demo5;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import pojo.Address;
import pojo.Result;import java.util.ArrayList;
import java.util.List;
RestController
public class text3 {//使用result规范管理响应数据//9.字符串RequestMapping(/strParam)public Result strParam(){System.out.println(Hello World);return Result.success(Hello World);}//10.数组RequestMapping(/arrParam)public Result arrParam(){Address address new Address();address.setProvince(河南);address.setCity(郑州);return Result.success(address);}//11.集合RequestMapping(/listParam)public Result listParam(){ListAddress list new ArrayList();Address address new Address();address.setProvince(山东);address.setCity(菏泽);Address address1 new Address();address1.setProvince(陕西);address1.setCity(西安);list.add(address);list.add(address1);return Result.success(list);}
}Address方法
package pojo;public class Address {private String province;private String city;Overridepublic String toString() {return Address{ province province \ , city city \ };}public String getProvince() {return province;}public void setProvince(String province) {this.province province;}public String getCity() {return city;}public void setCity(String city) {this.city city;}
}Result方法
package pojo;public class Result {private int code;//1代表成功0代表失败private String msg;//提示信息private Object data;//数据datapublic Result() {}public Result(int code, String msg, Object data) {this.code code;this.msg msg;this.data data;}public int getCode() {return code;}public void setCode(int code) {this.code code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg msg;}public Object getData() {return data;}public void setData(Object data) {this.data data;}public static Result success(Object data) {return new Result(1, success, data);}public static Result success() {return new Result(1, success, null);}public static Result error(String msg) {return new Result(0, msg, null);}Overridepublic String toString() {return Result{ code code , msg msg \ , data data };}
}user方法
package pojo;public class user {private String name;private int age;private Address address;public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address address;}Overridepublic String toString() {return user{ name name \ , age age , address address };}
}