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的更多相关文章

  1. swagger 爬坑记

    Swagger 的好处不用我多说,但是一不小心可能就被坑……今天下午就被上了一课,废话不多说,直接上代码(图) 实体类: 好像没啥问题,对吧? 但是,在http://localhost:8080/sw ...

  2. 记Asp.Net Core Swagger 使用 并带域接口处理

    引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升.但是使用Swagger时如果只是一般的控 ...

  3. 【实战】记一次老项目的swagger整合

    1.背景 这两天接到一个整合swagger的任务,本以为很简单,预计两小时内完成,没想到其中有太多的坑,整了两天才完成. 首先项目是一个比较老的项目,之前用的servlet,目前在重构为springm ...

  4. .Net Webapi Swagger增加登录功能

    .mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...

  5. Swagger从入门到精通

    https://legacy.gitbook.com/book/huangwenchao/swagger/details 如何编写基于OpenAPI规范的API文档 [TOC] 前言 编写目的 本文介 ...

  6. Asp.Net Web Api中使用Swagger

    关于swagger 设计是API开发的基础.Swagger使API设计变得轻而易举,为开发人员.架构师和产品所有者提供了易于使用的工具. 官方网址:https://swagger.io/solutio ...

  7. Swagger API文档集中化注册管理

    接口文档是前后端开发对接时很重要的一个组件.手动编写接口文档既费时,又存在文档不能随代码及时更新的问题,因此产生了像swagger这样的自动生成接口文档的框架.swagger文档一般是随项目代码生成与 ...

  8. netcore2.2以及netcore3.0下的swagger使用

    自从core3.0发布后,中间有很多东西跟以往用到的2.2版本相差特别多,今天主要来说一下swagger不同版本下的使用. swagger就是一个可视化接口工具,为了方便让调用者能够很好的了解接口以及 ...

  9. Swagger API文档

    Swagger API文档集中化注册管理   接口文档是前后端开发对接时很重要的一个组件.手动编写接口文档既费时,又存在文档不能随代码及时更新的问题,因此产生了像swagger这样的自动生成接口文档的 ...

随机推荐

  1. python练习题-day19

    1.将字符串的时间"2017-10-10 23:40:00"转换为时间戳和时间元组 import time s="2017-10-10 23:40:00" st ...

  2. MySQL使用root权限创建用户并授权

    MySql篇 1.下载并安装Mysql (1)下载地址 MySQL-8.0下载地址 (2)Mysql配置 1.home目录下命令行执行:vi    .bash_profile来配置MySql绝对路径 ...

  3. 10个Python基础练习项目,你可能不会想到练手教程还这么有趣

    美国20世纪最重要的实用主义哲学家约翰·杜威提出一个学习方法,叫做:Learning By Doing,在实践中精进.胡适.陶行知.张伯苓.蒋梦麟等都曾是他的学生,杜威的哲学也影响了蔡元培.晏阳初等人 ...

  4. jmeter-PC注册遇到的问题与解决

    2019-04-26问题:

  5. XiangBai——【CVPR2018】Multi-Oriented Scene Text Detection via Corner Localization and Region Segmentation

    XiangBai——[CVPR2018]Multi-Oriented Scene Text Detection via Corner Localization and Region Segmentat ...

  6. java爬取免费HTTP代理 code-for-fun

    偶然看到一个提供免费HTTP 代理IP的网站,该网站一两个小时就会更新一次,很有用.之后自己就用Java写了一个爬虫,爬取网站上的代理IP,以备后用. 网站源码: <!DOCTYPE html& ...

  7. python locust 性能测试:HttpSession

    官网解释:用于在请求之间执行Web请求和保留(会话)cookie的类(以便能够登录和退出网站):记录每个请求,以便locust可以显示统计信息: from locust import TaskSet, ...

  8. Django数据查询方法总结

      __exact 精确等于 like ‘aaa’__iexact 精确等于 忽略大小写 ilike ‘aaa’__contains 包含 like ‘%aaa%’__icontains 包含 忽略大 ...

  9. 字段like多个条件(or关系)简写

    字段 like ‘匹配串1’or 字段 like ‘匹配串2’or ... 有如下简写方式 oracle: select  * from tablex where REGEXP_LIKE(字段名, ' ...

  10. redis使用总结(一)(redis客户端使用)

    NoSQL 摘自百度百科 NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得 ...