configuration de fanfaronnades et de développement de style reposant

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
[Image vider la chaîne échoue, la station source peut avoir le mécanisme de la chaîne de sécurité, il est recommandé d'enregistrer l'image vers le bas directement téléchargé (img-6lSPG6oa-1585211962853) (actifs / 1583077495400.png)]

1.5 Configuration des renseignements personnels

[Image vider la chaîne échoue, la station source peut avoir le mécanisme de la chaîne de sécurité, il est recommandé d'enregistrer l'image vers le bas directement téléchargé (img-qiy4XrMb-1585211962855) (actifs / 1583077322375.png)]

1.5 page Accès

http: // localhost: 8085 / doc.html

[Image vider la chaîne échoue, la station source peut avoir le mécanisme de la chaîne de sécurité, il est recommandé d'enregistrer l'image vers le bas directement téléchargé (img-1xAjdlJA-1585211962856) (actifs / 1583077557021.png)]

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() ;
    }

}
Publié 29 articles originaux · louanges gagnées 0 · Vues 2245

Je suppose que tu aimes

Origine blog.csdn.net/rootDream/article/details/105122181
conseillé
Classement