A, swagger2 integração springboot
1,1 dependência introduzido
<!-- swagger2 接口文档 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<!-- swagger2的页面 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
</dependency>
<!--书写配置文件提示的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
1.2 Criando uma classe propriedade de configuração
Use o Lombok. Em uso, a ficha de montagem e embalagem Lombok importado
package com.zxm.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@Data
@ConfigurationProperties(prefix = "swagger2")
public class SwaggerProperties {
/**
* 要对那个包的Controller 做文档的生成
*/
private String basePackage;
/**
* 作者的名称
*/
private String name ;
/**
* 主页
*/
private String url;
/**
* 邮箱
*/
private String email ;
/**
* 标题
*/
private String title ;
/**
* 描述
*/
private String description ;
/**
* 服务的团队
*/
private String termsOfServiceUrl;
/**
* 授权信息
*/
private String license ;
/**
* 授权的url
*/
private String licenseUrl ;
/**
* swagger2的版本
*/
private String version;
}
1.3 Criação de classe de configuração automática
package com.zxm.config;
import io.swagger.models.Swagger;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2 // 开启swagger的功能
@EnableConfigurationProperties(SwaggerProperties.class)
public class SwaggerAutoConfiguration {
private SwaggerProperties swaggerProperties;
public SwaggerAutoConfiguration(SwaggerProperties swaggerProperties){
this.swaggerProperties = swaggerProperties;
}
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(getApiInfo())
.select().apis(RequestHandlerSelectors.basePackage(this.swaggerProperties.getBasePackage())).build();
}
private ApiInfo getApiInfo() {
Contact contact = new Contact(this.swaggerProperties.getName(), this.swaggerProperties.getUrl(), this.swaggerProperties.getEmail());
return new ApiInfoBuilder().
contact(contact).
title(this.swaggerProperties.getTitle()).
description(this.swaggerProperties.getDescription()).
termsOfServiceUrl(this.swaggerProperties.getTermsOfServiceUrl()).
license(this.swaggerProperties.getLicense()).
licenseUrl(this.swaggerProperties.getLicenseUrl()).
version(this.swaggerProperties.getVersion()).
build();
}
}
1,4 libertação swagger2 no shiro
O não uso shiro não pode ser definido
1.5 Configurando Informações Pessoais
1.5 página de Acesso
http: // localhost: 8085 / doc.html
Dois, MyBatis-plus configuração guia
@Configuration
public class MybatisConfig {
/**
* 分页的拦截器
* @return
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setDialectType("mysql") ;
return paginationInterceptor ;
}
}
Três, design de interface Restful
consulta 3.1 paginação
Um mínimo de dois parâmetros de solicitação: página atual
SYSUSER -> sys / user / página
例: http: // localhost: 8001 / proxyApi / sys / user / página t = 1582615122917 & atual = 1 & size = 10
elemento | manifestações |
---|---|
método de solicitação | obter |
parâmetro de solicitação | Integer atual: A página página Integer atual: o número de peças por página |
O valor de retorno | IPage |
solicitação de URL | $ {Base_url} / nome da tabela / página |
3.2 Eco dados única
elemento | manifestações |
---|---|
método de solicitação | obter |
parâmetro de solicitação | parâmetro id longo para o id url |
O valor de retorno | SYSUSER |
solicitação de URL | $ {Base_url} / table name / info / {id} |
Por exemplo: a gestão eco
/ Sys / user / info / 1
3.3 dados de exclusão
elemento | manifestações |
---|---|
método de solicitação | excluir |
parâmetro de solicitação | parâmetro id longo para o id url |
O valor de retorno | Vazio |
solicitação de URL | $ {Base_url} / nome da tabela / {id} |
3.4 Excluir um conjunto de (exclusão em massa)
elemento | manifestações |
---|---|
método de solicitação | excluir |
parâmetro de solicitação | ids lista |
O valor de retorno | Vazio |
solicitação de URL | $ {Base_url} / nome da tabela |
parâmetros de solicitação: Json dados: [id1, ID2 ...]
3.5 uma nova dados
elemento | manifestações |
---|---|
método de solicitação | postar |
parâmetro de solicitação | SYSUSER SYSUSER |
O valor de retorno | Vazio |
solicitação de URL | $ {Base_url} / nome da tabela |
parâmetros de solicitação: novos dados do objeto json
3.6 dados de consulta completa
elemento | manifestações |
---|---|
método de solicitação | obter |
parâmetro de solicitação | não |
O valor de retorno | Lista |
solicitação de URL | Nome $ {base_url} / mesa / list |
Em quarto lugar, a exemplo do uso de estilo repousante
package com.sxt.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sxt.entity.SysUser;
import com.sxt.service.SysUserService;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/sys/user")
public class UserController {
@Autowired
private SysUserService sysUserService ;
/**
* 分页查询
*/
@GetMapping("/page")
@ApiOperation("分页的查询")
public ResponseEntity<IPage<SysUser>> findByPage(
@RequestParam(defaultValue = "1") Integer current,
@RequestParam(defaultValue = "10") Integer size
){
IPage<SysUser> page = sysUserService.page(new Page<>(current, size));
return ResponseEntity.ok(page) ;
}
/**
* 删除单个值
* @param id
* @return
*/
@DeleteMapping("/{id}")
@ApiOperation("删除单个值")
public ResponseEntity<Void> delete(@PathVariable("id")Long id){
sysUserService.removeById(id);
return ResponseEntity.ok().build() ;
}
/**
* 删除多个值
*/
@DeleteMapping
@ApiOperation("删除多个值")
public ResponseEntity<Void> delete(@RequestBody List<Long> ids){
sysUserService.removeByIds(ids);
return ResponseEntity.ok().build() ;
}
/**
* 回显一个值
*/
@GetMapping("/info/{id}")
@ApiOperation("回显一个值")
public ResponseEntity<SysUser> findById(@PathVariable("id") Long id){
SysUser sysUser = sysUserService.getById(id);
return ResponseEntity.ok(sysUser) ;
}
/**
* 新增一个值
* @param sysUser
* @return
*/
@PostMapping
@ApiOperation("新增一个值")
public ResponseEntity<Void> add(@RequestBody SysUser sysUser){
sysUserService.save(sysUser);
return ResponseEntity.ok().build() ;
}
/**
* 修改一个值
* @param sysUser
* @return
*/
@PutMapping
@ApiOperation("修改一个值")
public ResponseEntity<Void> update(@RequestBody SysUser sysUser){
sysUserService.updateById(sysUser);
return ResponseEntity.ok().build() ;
}
}