记 Swagger 2
Maven坐标:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
配置Swagger2:
package com.pinecone.leaf.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; @EnableSwagger2
@Configuration
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.pinecone.leaf.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("Springboot使用Swagger2构建Api文档")
.description("构建简单优雅的Restful风格api")
.termsOfServiceUrl("localhost")
.version("1.0")
.build();
}
}
实体类(使用Lombok):
package com.pinecone.leaf.domain; import lombok.*; import javax.persistence.*; @Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString @Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id; private String name;
}
Dao层:
package com.pinecone.leaf.repository; import com.pinecone.leaf.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; @Repository
public interface UserRepository extends JpaRepository<User, Integer> {
}
提供单例:
package com.pinecone.leaf.singleton; import com.pinecone.leaf.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; @Component
public class RepositorySingleTon {
public static UserRepository userRepository; @Autowired
public RepositorySingleTon(UserRepository userRepository) {
RepositorySingleTon.userRepository = userRepository;
}
}
控制器:
package com.pinecone.leaf.controller; import com.pinecone.leaf.domain.User;
import com.pinecone.leaf.singleton.RepositorySingleTon;
import org.springframework.web.bind.annotation.*; import java.util.List;
import java.util.Optional; @RestController
public class UserController {
@GetMapping("/users")
public List<User> findAll() {
return RepositorySingleTon.userRepository.findAll();
}
@PostMapping("/users")
public void save(User user) {
RepositorySingleTon.userRepository.save(user);
}
@PutMapping("/users")
public void put(User user) {
RepositorySingleTon.userRepository.save(user);
}
@DeleteMapping("/users")
public void deleteAll() {
RepositorySingleTon.userRepository.deleteAll();
}
@GetMapping("/users/{id}")
public Optional<User> findById(@PathVariable Integer id) {
return RepositorySingleTon.userRepository.findById(id);
}
@DeleteMapping("/users/{id}")
public void deleteById(@PathVariable Integer id) {
RepositorySingleTon.userRepository.deleteById(id);
}
}
访问 Swagger UI(我端口直接用的80),大致如下图:
记 Swagger 2的更多相关文章
- swagger 爬坑记
Swagger 的好处不用我多说,但是一不小心可能就被坑……今天下午就被上了一课,废话不多说,直接上代码(图) 实体类: 好像没啥问题,对吧? 但是,在http://localhost:8080/sw ...
- 记Asp.Net Core Swagger 使用 并带域接口处理
引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升.但是使用Swagger时如果只是一般的控 ...
- 【实战】记一次老项目的swagger整合
1.背景 这两天接到一个整合swagger的任务,本以为很简单,预计两小时内完成,没想到其中有太多的坑,整了两天才完成. 首先项目是一个比较老的项目,之前用的servlet,目前在重构为springm ...
- .Net Webapi Swagger增加登录功能
.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...
- Swagger从入门到精通
https://legacy.gitbook.com/book/huangwenchao/swagger/details 如何编写基于OpenAPI规范的API文档 [TOC] 前言 编写目的 本文介 ...
- Asp.Net Web Api中使用Swagger
关于swagger 设计是API开发的基础.Swagger使API设计变得轻而易举,为开发人员.架构师和产品所有者提供了易于使用的工具. 官方网址:https://swagger.io/solutio ...
- Swagger API文档集中化注册管理
接口文档是前后端开发对接时很重要的一个组件.手动编写接口文档既费时,又存在文档不能随代码及时更新的问题,因此产生了像swagger这样的自动生成接口文档的框架.swagger文档一般是随项目代码生成与 ...
- netcore2.2以及netcore3.0下的swagger使用
自从core3.0发布后,中间有很多东西跟以往用到的2.2版本相差特别多,今天主要来说一下swagger不同版本下的使用. swagger就是一个可视化接口工具,为了方便让调用者能够很好的了解接口以及 ...
- Swagger API文档
Swagger API文档集中化注册管理 接口文档是前后端开发对接时很重要的一个组件.手动编写接口文档既费时,又存在文档不能随代码及时更新的问题,因此产生了像swagger这样的自动生成接口文档的 ...
随机推荐
- js 获取鼠标的手势方向角度
需要获取鼠标的移动角度 1.mousedown 确定起始点 2.mousemove 确立相关点 3.先计算两点的斜率,然后根据三角函数和反三角函数.转换为角度 <!DOCTYPE html> ...
- 20.C# 创建自己的泛型类型
1.定义泛型类 可以使用以下语法创建泛型类,T可以是任意符合C#标识符命名规范的任意标识符 class MyGenericClass<T> { //.... } 泛型类可以包含任意多个类型 ...
- win 下 python ImportError: No module named requests
第一次弄爬虫,报库找不到,网上找了半天,一般都让都让改成绝对路径...那不是饮鸩止渴嘛. 然后 在无意中发现,不需要控制台输入pip命令,因为不是在Linux下啊,,win下直接在pycharm里添加 ...
- 【原创】canvas裁剪上传图片异步提交
<!DOCTYPE html> canvas裁剪图片,纯前端 裁剪文件 后台返回获取裁剪后的文件
- python中pip升级
第一步: 首先安装python,在百度中搜索python,进入python官网,点击downliad, 下载到本地: 下载好后进行安装,与一般软件安装过程一样.安装过程中要注意勾线Add python ...
- hibernate一级缓存及对象的状态
hibernate中实体类对象的状态 在hibernate中实体类对象有三种状态 (1)瞬时态(临时态) 瞬时态:即我们自己创建一个对象,还没有保存到数据库就叫临时态,其实也可以说是对像没有id值,跟 ...
- The Non-Inverting Amplifier Output Resistance by Adrian S. Nastase [转载]
Source Address: http://masteringelectronicsdesign.com/the-non-inverting-amplifier-output-resistance/ ...
- Vue系列之 => webpack-babel的配置
安装 cnpm i babel-core@6.26.3 babel-loader@7.0.0 babel-plugin-transform-runtime -D cnpm i babel-preset ...
- PHP获取汉字首字母函数
<?php function getFirstCharter($str) { if (empty($str)) { return ''; } $fchar = ord($str{0}); if ...
- oracle删除数据库
1.确认当前数据库是否为要删除的那一个select name from v$database; 2.关闭数据库shutdown immediate; 3.以restrict方式重新打开数据库,并启动到 ...