微服务项目:尚融宝(8)(后端接口:积分等级CRUD)

2022-11-15 13:55:35 浏览数 (1)

一、积分等级列表接口

1、编写积分等级管理接口

在controller中添加admin包,添加AdminIntegralGradeController类

代码语言:javascript复制
@CrossOrigin
@RestController
@RequestMapping("/admin/core/integralGrade")
public class AdminIntegralGradeController {

    @Resource
    private IntegralGradeService integralGradeService;

    @GetMapping("/list")
    public List<IntegralGrade> listAll(){
        return integralGradeService.list();
    }
}

2、测试

重启服务,访问: http://localhost:8110/admin/core/integralGrade/list 查看结果json数据

二、逻辑删除接口

1、添加删除方法

AdminIntegralGradeController添加removeById方法

代码语言:javascript复制
​​​​​​​@DeleteMapping("/remove/{id}")
public boolean removeById(@PathVariable Long id){
    return integralGradeService.removeById(id);
}

 BUG排除

工程的pom文件变成灰色,表示忽略处理,这个玩意一般是你删掉的创建的工程不够干净,然后又重建了一个工程(同名),

原因: 新建的模块名与之前删除过的模块重名了,此时IDEA会认为此Project中需要排除该Module,可能就会导致pom文件变成灰色。 解决方案: 路径:Setting→Build Tools→Maven->Ignored Files ,找到被打勾忽略的Module,然后将Ignored Files中的打勾去掉即可。

三、配置Swagger2

1、Swagger2配置文件

在service-base中创建Swagger2Config

代码语言:javascript复制
@Configuration
@EnableSwagger2
public class Swagger2Config {
    
    @Bean
    public Docket adminApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi")
                .apiInfo(adminApiInfo())
                .select()
                //只显示admin路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
                .build();

    }

    private ApiInfo adminApiInfo(){

        return new ApiInfoBuilder()
                .title("尚融宝后台管理系统-API文档")
                .description("本文档描述了尚融宝后台管理系统接口")
                .version("1.0")
                .contact(new Contact("Helen", "http://atguigu.com", "55317332@qq.com"))
                .build();
    }
}

2、查看Swagger文档

重启服务器查看接口文档:http://localhost:8110/swagger-ui.html

3、常见注解

实体类注解:entity的实体类中可以添加一些自定义设置,例如:

代码语言:javascript复制
@ApiModelProperty(value = "创建时间", example = "2019-01-01 8:00:00")
private LocalDateTime createTime;

@ApiModelProperty(value = "更新时间", example = "2019-01-01 8:00:00")
private LocalDateTime updateTime;

这个可以在swagger测试里面如果需要传jsion对象的时候默认,这俩个属性将有俩个默认的值

controller注解:

定义在类上

代码语言:javascript复制
@Api(tags = "积分等级管理")

 定义在方法上

代码语言:javascript复制
@ApiOperation("积分等级列表")

@ApiOperation(value = "根据id删除积分等级", notes = "逻辑删除")

定义在参数上

代码语言:javascript复制
@ApiParam(value = "数据id", required = true, example = "100")

如果想要以不同的页面展示不同的接口文档,可以进行分组,比如想管理端的文档和web端的文档进行分开,可以进行分组处理

代码语言:javascript复制
@Configuration
@EnableSwagger2
public class Swagger2Config {

    private ApiInfo ApiConfig(){
        return new ApiInfoBuilder().title("尚融宝后台管理系统API文档")
                .description("本文本描述了尚融宝后台管理系统的各个模块的调用方式")
                .version("1.6")
                .contact(new Contact("helen","http://atguigu.com","admin@atguigu.com"))
                .build();

    }
    @Bean
    public Docket apiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(ApiConfig())
                .groupName("adminApi").select()
                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
                .build();
    }
    
    private ApiInfo webApiConfig(){
        return new ApiInfoBuilder().title("尚融宝网站管理系统API文档")
                .description("本文本描述了尚融宝网站系统的各个模块的调用方式")
                .version("1.6")
                .contact(new Contact("helen","http://atguigu.com","admin@atguigu.com"))
                .build();

    }
    
    @Bean
    public  Docket webAopConfig()
    {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(webApiConfig())
                .groupName("webApi").select()
            .paths(Predicates.and(PathSelectors.regex("/api/.*")))
            .build();
    }


}

0 人点赞