A, l'intégration de springboot swagger2
1,1 dépendance introduite
<!-- 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 Création d'une classe de propriété de configuration
Utilisez le lombok. En utilisation, le bouchon de montage et paquet de lombok lombok importé
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 Création de la classe de configuration automatique
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();
}
}
Version 1.4 swagger2 dans le shiro
La non-utilisation Shiro ne peut pas être
1.5 Configuration des renseignements personnels
1.5 page Accès
http: // localhost: 8085 / doc.html
Deux, mybatis-plus la configuration de l'onglet
@Configuration
public class MybatisConfig {
/**
* 分页的拦截器
* @return
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setDialectType("mysql") ;
return paginationInterceptor ;
}
}
Trois, conception d'interface Restful
requête d'appel 3.1
Un minimum de deux paramètres de la requête: page en cours
SYSUSER -> sys / utilisateur / Page
例: http: // localhost: 8001 / proxyApi / sys / utilisateur / page t = 1582615122917 & courant = 1 & size = 10
élément | manifestations |
---|---|
méthode de requête | avoir |
paramètre de demande | courant entier: La page page courante entier: le nombre de pièces par page |
La valeur de retour | Ipage |
URL de demande | $ {} Base_url / nom / tableau page |
3.2 Echo données unique
élément | manifestations |
---|---|
méthode de requête | avoir |
paramètre de demande | paramètre long id à l'id url |
La valeur de retour | SYSUSER |
URL de demande | $ {Base_url} / Nom de la table / info / {id} |
Par exemple: echo une gestion
/ Sys / user / info / 1
3.3 efface les données
élément | manifestations |
---|---|
méthode de requête | supprimer |
paramètre de demande | paramètre long id à l'id url |
La valeur de retour | Néant |
URL de demande | $ {} Base_url / nom de la table / {id} |
3.4 Suppression d'un ensemble de (suppression en vrac)
élément | manifestations |
---|---|
méthode de requête | supprimer |
paramètre de demande | Liste ids |
La valeur de retour | Néant |
URL de demande | $ {} Base_url / nom de la table |
Paramètres de la requête: JSON données: [ID1, ID2 ...]
3.5 une nouvelle données
élément | manifestations |
---|---|
méthode de requête | Publier |
paramètre de demande | SYSUSER sysUser |
La valeur de retour | Néant |
URL de demande | $ {} Base_url / nom de la table |
Paramètres de la requête: nouvelles données de l'objet JSON
3.6 données de requête complète
élément | manifestations |
---|---|
méthode de requête | avoir |
paramètre de demande | aucun |
La valeur de retour | liste |
URL de demande | Nom $ {} base_url / table / liste |
Quatrièmement, l'exemple d'utiliser un style reposant
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() ;
}
}