Spingboot中RESTful API的应用

来源:互联网 发布:包贝尔鸡兔同笼算法 编辑:程序博客网 时间:2024/05/23 21:56

1.RESTful API简介

    restful api是一套目前比较成熟的互联网应用的API设计理论;GET表示查询,POST表示新建,DELETE表示删除,PUT表示修改;这四种请求方式已经鲜明地亮出自己的接口底牌:这个接口到底要实现的什么逻辑。

2.RESTful API在SpringBoot中的应用

①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.didispace</groupId>   <artifactId>Chapter3-1-1</artifactId>   <version>1.0.0</version>   <packaging>jar</packaging>   <name>Chapter3-1-1</name>   <description>RESTful API Project</description>   <parent>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-parent</artifactId>      <version>1.4.3.RELEASE</version>   </parent>   <properties>      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>      <java.version>1.8</java.version>   </properties>   <dependencies>      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter</artifactId>      </dependency>      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-test</artifactId>         <scope>test</scope>      </dependency>      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-web</artifactId>      </dependency>   </dependencies>      <build>      <plugins>         <plugin>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-maven-plugin</artifactId>         </plugin>      </plugins>   </build></project>
②请求方式详情

查询请求:

/** * 公司id获取公司信息 * @param companyId 公司id */@GetMapping("/getCompanyInfo/{companyId}")public ResultInfo getCoName(@PathVariable("companyId") Integer companyId){    Date lastDay = new Date(new Date().getTime()-24*60*60*1000);    Map<String,Object> map = Maps.newHashMap();    Company company = companyService.selectByPrimaryKey(companyId);    map.put("name",company.getCompanyName());//企业名    map.put("icon",company.getThumbnails());//缩略图    map.put("staffNum",companyService.getStaffNum(companyId));//获取用户数    map.put("workshopNum",companyService.deptCount(companyId));//获取部门数    map.put("lastDayNum",companyService.singupNum(companyId,lastDay));//昨日使用人数    return  success(map);}

新建请求:

/** * 添加角色 * @param role * @return */@PostMapping("/addRole")public ResultInfo addRole(Role role){    int i = roleGroupService.addRole(role);    return i>0?success("添加角色成功"):success("添加角色失败");}

删除请求:

//删除员工@DeleteMapping("/delete/{id}")public ResultInfo deleteByPrimaryKey(@PathVariable("id") Long id) {    return (staffService.deleteByPrimaryKey(id) > 0) ? success("删除成功") : success("删除失败");}

修改请求:

@RequestMapping(value="/{id}", method=RequestMethod.PUT)public String putUser(@PathVariable Long id, @ModelAttribute User user) {    // 处理"/users/{id}"PUT请求,用来更新User信息    User u = users.get(id);    u.setName(user.getName());    u.setAge(user.getAge());    users.put(id, u);    return "success";}

当然

@RequestMapping(value="/{id}", method=RequestMethod.PUT)
可以用

@PutMapping("/{id}")
替代,其他的请求方式同理!@ParaVariable注解已经将{}中的参数传给了该注解申明的变量,这样用起来很轻松,也一目了然!

好了,我是张星,欢迎加入博主技术讨论群,群号:313145288







原创粉丝点击