Postman-Restfule
来源:互联网 发布:视觉盲点 知乎 编辑:程序博客网 时间:2024/05/19 21:43
Postman-Restfule
一,概念简述
Postman是一个软件
Restful:是一种软件架构风格,为了提供一组设计原则和约束条件,用于客户端和服务器交互的软件,
二,对于REST的理解
1,互联网软件的架构
2,REST———–>(Resource)Representational State Transfer “资源” 表现层状态转化
3,资源(Resource):可以使一段文本,图片,一首歌。。。。就是一个具体的实在。要获得他的资源就必须访问他的URL,因此URL就成了每一个资源的地址会独一无二的标识符
4,表现层(Representation):在这里表现层并不是指的是:例如文本的表现形式txt, 也可以用html 格式等。URL代表资源的实体,或者是代表资源的位置。他的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对表现层的表述
5,状态转化(State Transfer):
如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化(数据和状态转化)”,而这种转化是建立在表现层之上的,所以就是表现层状态转化
6,HTTP协议里面:有四个基本操作方式
GET:用来获取资源
POST: 用来新建资源(也可以用来更新资源)
PUT:用来更新资源
DELETE:用来删除资源
7,总结;
Restful架构是什么:
1,每一个URL代表一种资源
2,客户端和服务器之间,传递这种资源的某种表现层
3,客户端通过这四个HTTP动词,对服务器资源进行操作,实现“表现层状态转化”
三,用springboot+jpa 搭建Restful框架
一,项目的总体分层
1,domain
package com.yztc.demo.domain;import javax.persistence.*;@Entity@Table(name = "employee")public class Employee { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column private String name; @Column private String address; @Column private String photo; public Employee() { } public Employee(String name, String address, String photo) { this.name = name; this.address = address; this.photo = photo; } public Integer getId() { return id; } @Override public String toString() { return "Employee{" + "id=" + id + ", name='" + name + '\'' + ", address='" + address + '\'' + ", photo='" + photo + '\'' + '}'; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhoto() { return photo; } public void setPhoto(String photo) { this.photo = photo; }}
2,repository
package com.yztc.demo.repository;import com.yztc.demo.domain.Employee;import org.springframework.data.jpa.repository.JpaRepository;public interface EmployeeRepository extends JpaRepository<Employee,Integer>{}
3,service
EmpService
package com.yztc.demo.service;import com.yztc.demo.domain.Employee;import com.yztc.demo.status.ResultMsg;import java.util.List;public interface EmpService { /** * 添加 * @param employee 参数是employee * @return 返回一个对象,对象里面有状态码和属性两个属性 */ public ResultMsg saveEmployee(Employee employee); /** * 查找所有的 * 不需要参数 * @return 返回一个list集合,集合里面是Employee实体类 */ public List<Employee> findAllEmployee(); /** * 根据id进行删除 * @param id 参数是id * @return 返回一个对象。对象里面存放状态码,和信息 */ public ResultMsg deleteEmployee(Integer id);}
EmpServiceImpl
package com.yztc.demo.service;import com.yztc.demo.domain.Employee;import com.yztc.demo.repository.EmployeeRepository;import com.yztc.demo.status.ResultMsg;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class EmployeeServiceImpl implements EmpService { /** * 注入EmployeeRepository,里面提供了增删改查的方法 */ @Autowired private EmployeeRepository employeeRepository; /** * 添加,添加成功返回数字1,添加失败返回数字-1 * @param employee 参数是employee * @return */ @Override public ResultMsg saveEmployee(Employee employee) { try{ employeeRepository.save(employee); return new ResultMsg(1,"添加成功"); }catch(Exception e){ e.printStackTrace(); } return new ResultMsg(-1,"添加失败"); } /** * 查找所有 * @return 返回List集合 */ @Override public List<Employee> findAllEmployee() { return employeeRepository.findAll(); } /** * 删除,根据id进行删除,所以参数是id,删除成功返回数字1,删除失败返回数字-1 * @param id 参数是id * @return */ @Override public ResultMsg deleteEmployee(Integer id) { try{ employeeRepository.delete(id); return new ResultMsg(1,"删除成功"); }catch(Exception e){ e.printStackTrace(); } return new ResultMsg(-1,"删除失败"); }}
4,status
package com.yztc.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Resufuldemo1Application { public static void main(String[] args) { SpringApplication.run(Resufuldemo1Application.class, args); }}
5,controller
package com.yztc.demo.controller;import com.yztc.demo.domain.Employee;import com.yztc.demo.service.EmpService;import com.yztc.demo.status.ResultMsg;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestControllerpublic class EmployeeController { /** * 注入EmpService 以此来进行调用EmpService的方法 */ @Autowired private EmpService empService; /** * 添加 * @param employee 参数是employee实体类 * @return 返回对象 */ @RequestMapping(value = "/addemployee",method = RequestMethod.POST) public ResultMsg addEmployee(Employee employee){ System.out.println(employee); return empService.saveEmployee(employee); } /** * 查找所有的 * @return 返回一个List集合 */ @RequestMapping("/findAll") public List<Employee> findAll(){ List<Employee> employeeList = empService.findAllEmployee(); return employeeList; } /** * 根据id进行删除,返回对象ResultMsg * @param id * @return */ @RequestMapping("deleteEmployee") public ResultMsg deleteEmployee(@RequestParam Integer id){ return empService.deleteEmployee(id); }}
6,jpa的配置文件
spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.username=rootspring.datasource.password=rootspring.datasource.url=jdbc:mysql://localhost:3306/mysqlspring.jpa.show-sql=truespring.jpa.hibernate.ddl-auto=updatespring.jpa.generate-ddl=true
7,pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yztc.demo</groupId> <artifactId>resufuldemo1</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>resufuldemo1</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
四,在postman中输入地址来进行访问实现增删改查
2](C:\Users\gp\Desktop\知识点\图片\QQ图片20170830202032.jpg)
- Postman-Restfule
- Postman
- PostMan
- Postman
- postman
- postman
- Postman
- PostMan
- postman
- postman
- PostMan
- postman
- PostMan
- postman
- PostMan
- Spring MVC 4 Restfule api Demo
- 【POSTMAN】postman使用手册
- Postman+Postman interceptor使用
- SQLServer--视图的创建与使用
- 哈希树
- JAVA 线程与进程
- 我的第一篇博客
- TortoiseSVN下载,安装,配置,常用操作 svn教程
- Postman-Restfule
- 配置dgmgrl
- 讲个关于对象的故事
- python3操作INI格式文件
- Mybatis之SQLMapper大全
- split分隔符总结
- HDU
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- UVALive7749(Convex Contour)-计算几何分类讨论