记 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这样的自动生成接口文档的 ...
随机推荐
- Synchronize,Lock, ReentrantLock,ReentrantReadWriteLock
下面ReentrantLock是Lock接口的具体实现 如果想在线程等待时(即等待获得锁时)可以被中断,用lockInterruptibly:注意:在线程已经获得锁正在执行时,用Synchronize ...
- 学号 20175313 《实验三 敏捷开发与XP实践》实验报告
目录 实验三 敏捷开发与XP实践 一.实验内容 二.实验步骤 四.心得体会 五.码云链接 六.参考资料 实验三 敏捷开发与XP实践 一.实验内容 (1)编码标准 在IDEA中使用工具(Code-> ...
- HDD ,SSD和PCIE SSD性能测试
PCIE SSD * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 10 ...
- zipkin链路追踪
zipkin架构说明 zipkin api 我想自己搞一些满足zipkin格式的日志,入库es,然后让zipkin仅做展示 1.需要了解zipkin组件 2,学习zipkin设计原理,何时何地产生日志 ...
- Ch07 包和引入 - 练习
1. 编写示例程序,展示为什么 package com.horstmann.impatient 不同于 package com package horstmann package impatien ...
- jenkins centos slave起不来报错The SSH key presented by the remote host does not match the key saved in the Known Hosts file against this host. Connections to this host will be denied until the two keys mat
场景:我的centos-204是一台centos的机器,本来用https://www.cnblogs.com/zndxall/p/8297356.html 的centos slave方式搭建ok的,一 ...
- STM32_DAC之软件触发(Trigger)
stm32_DAC可以用来输出固定的电压值,有些时候需要按键可调输出的电压值.其中一种方法是使用外部中断EXTI9, 另外一种方法就是使用软件触发. 如果将DAC_InitTypeDef.DAC_Tr ...
- (转)Jmeter基础之编写HTTP接口用例
使用Jmeter书写一个接口用例 第一:添加线程组 一.添加一个线程组,方法如下图所示: 二.配置线程组,如下图图所示: 需要填写名称,按需要修改线程数.等待时间和循环次数等: 第二:添加http请 ...
- SWIT2019无线通信和信息技术国际研讨会(上海)
无线通信和信息技术国际研讨会(SWIT 2019)将于2019年6月29日至30日在中国上海皇冠晶品酒店举行.本次会议将讨论无线通信和信息技术问题.它致力于创造一个交流最新研究成果和分享先进研究方法的 ...
- Linux----------开始使用Screen
1.直接在命令行键入screen命令 screen 然后回车就可以创建一个全新的回话窗口 2.screen -ls 查看开启的会话窗口 3.重新连接会话 screen -r 1231 数 ...