Spring Boot初学第三天: 构建restful服务

基本知识

Spring Boot 提供的spring-boot-starter-web组件支持开发RESTFUL API,提供了与REST操作方式(get,post,put。delete,patch)对应的注解。
@GetMapping: 处理get请求,获取资源。
@PostMapping:新增资源
@PutMapping:更新资源
@DeleteMapping:删除资源
@PatchMapping:更新部分资源
url代表资源尽量进行不用动词
客户端使用get、post、put、delete四种表示操作方式的动词对服务器资源进行操作。
资源的表现形式是json或html。
客户端与服务器之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都包含必需的信息。

Http Method 接口地址 接口说明
post /user 创建用户
get /user/id 根据id获取用户信息
put /user/id 根据id更新用户
delete /user/id 根据id删除用户
使用swagger生成web api文档

在项目中引入swagger依赖


        
         
            io.springfox 
            springfox-swagger2 
             2.9.2
        
         
            io.springfox 
            springfox-swagger-ui 
            2.9.2
        

配置Swagger

// src\main\java\com\example\config\SwaggerConfig.java
package com.example.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration // 通知spring容器,此类为一个配置类
@EnableSwagger2 // / 该注解开启Swagger2的自动配置

public class SwaggerConfig {
  /**
   * 配置Swagger相关的bean
   * 
   */
  @Bean
  public Docket docker() {
    // 构造函数传入初始化规范,这是swagger2规范
    return new Docket(DocumentationType.SWAGGER_2)
        // apiInfo:
        // 添加api详情信息,参数为ApiInfo类型的参数,这个参数包含了第二部分的所有信息比如标题、描述、版本之类的,开发中一般都会自定义这些信息
        .apiInfo(apiInfo())
        .groupName("jiasuba")
        // 配置是否启用Swagger,如果是false,在浏览器将无法访问,默认是true
        .enable(true)
        .select()
        // apis: 添加过滤条件,
        // com.example.controller包下所有api都交给Swagger管理
        .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
        // paths: 这里是控制哪些路径的api会被显示出来,比如下方的参数就是除了/user以外的其它路径都会生成api文档
        .paths(PathSelectors.any())
        .paths((String a) -> !a.equals("/user"))
        .build();
  }

  private ApiInfo apiInfo() {

    return new ApiInfoBuilder().title("演示项目API").description("description").version("version").build();
  }
}

在路由上添加备注

  @ApiOperation("获取用户信息")
  @GetMapping("/user/{id}")
  public Object getUserById(@PathVariable int id) {
    Map map = new HashMap<>();
    map.put("msg", "获取成功");
    return map;
  }

访问网址

http://localhost:8081/swagger-ui.html

Spring Boot初学第三天: 构建restful服务_第1张图片

你可能感兴趣的:(restful,spring,boot,java)