一、新建maven工程导入正确的pom文件
还是那句话,包导入正确就成功了80%。剩下的20%慢慢攻克吧。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.apidoc.demotest</groupId>
<artifactId>apidoc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<spring.version>4.1.7.RELEASE</spring.version>
<version.jackson>2.4.4</version.jackson>
<swagger.version>2.2.2</swagger.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${version.jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${version.jackson}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${version.jackson}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
<version>3.1.0</version>
</dependency>
<!--petstore是官方的一个demo,加入此依赖是为了稍后参考接口描述的编写 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-petstore</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.1</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
二、建包并创建对应java文件
(1)
package com.apidoc.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
@Configuration
@EnableSwagger
@EnableWebMvc
public class SwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig;
/**
* required to autowire SpringSwaggerConfig
*/
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
this.springSwaggerConfig = springSwaggerConfig;
}
/**
* Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
* framework - allowing for multiple swagger groups i.e. same code base
* multiple swagger resource listings.
*/
@Bean
public SwaggerSpringMvcPlugin customImplementation() {
// 暂时不用过滤
/*return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(".*pet.*");*/
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo(
"My Apps API Title","My Apps API Description","My Apps API terms of service","My Apps API Contact Email","My Apps API Licence Type","My Apps API License URL"
);
return apiInfo;
}
}
(2)
package com.apidoc.model;
public class User{
private String Id;
String Name;
Integer Age;
public String getId() {
return Id;
}
void setId(String id) {
Id = id;
}
String getName() {
Name;
}
setName(String name) {
Name = name;
}
Integer getAge() {
Age;
}
setAge(Integer age) {
Age = age;
}
}
(3)
com.apidoc.webservice;
import javax.servlet.http.HttpServletRequest;
org.springframework.stereotype.Controller;
org.springframework.web.bind.annotation.RequestMapping;
org.springframework.web.bind.annotation.RequestMethod;
org.springframework.web.bind.annotation.RequestParam;
org.springframework.web.bind.annotation.ResponseBody;
com.apidoc.model.User;
com.wordnik.swagger.annotations.ApiOperation;
com.wordnik.swagger.annotations.ApiParam;
net.sf.json.JSONObject;
/**
* @moudle: WebServiceForCSS
* @version:v1.0
* @Description: Todo
* @author: xukai
* @date: 2016年12月1日 下午5:37:30
*
*/
@Controller
WebServiceForCSS {
@ResponseBody
@RequestMapping(value = "getUserById",method = RequestMethod.GET,produces = {"application/json; charset=utf-8","application/xml"})
@ApiOperation(value = "通过ID查询USER信息",httpMethod = "POST",notes = "暂无")
String getUserById(
@ApiParam(required = true,name = "id",value = "ID")
@RequestParam(value = "id") String id,HttpServletRequest request) {
User user = new User();
user.setId(id);
user.setName("测试人员");
user.setAge(25);
JSONObject object = JSONObject.fromObject(user);
object.toString();
}
}
三、根据web.xml建立spring文件夹以及springmvc和spring相关的xml文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>SwaggerDemo</display-name>
<!--
- Location of the XML file that defines the root application context.
- Applied by ContextLoaderListener.
-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/application-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--
- Servlet that dispatches request to registered handlers (Controller implementations).
-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.dispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.ico</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.xls</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.doc</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.json</url-pattern>
</servlet-mapping>
<!-- 字体相关 开始 -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.eot</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.svg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.ttf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.woff</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.woff2</url-pattern>
</servlet-mapping>
<!-- 字体相关 结束 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
在上述的基础上开始建立xml配置文件
(1)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<mvc:annotation-driven /> <!-- mvc-config.xml中的可以去掉 -->
<context:component-scan base-package="com.apidoc"/>
<bean class="com.apidoc.config.SwaggerConfig"/>
</beans>
(2)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- Uncomment and your base-package here:
<context:component-scan
base-package="org.springframework.samples.web"/> -->
bean ="org.springframework.web.servlet.view.InternalResourceViewResolver">
Example: a logical view name of 'showMessage' is mapped to '/WEB-INF/jsp/showMessage.jsp' -->
property name="prefix" value="/WEB-INF/view/"/>
="suffix"=".jsp"/>
</bean>
beans>
四、进入swagger相关的github网站下载的swagger版本
网址如下:
https://github.com/swagger-api/swagger-ui
下载成功后,将dist目录拷贝到webapp目录下
拷贝成功后,将拷贝的dist目录下的index.html文件中的url修改为自己项目文档路径
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
<title>Swagger UI</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+Web:400,600,700" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" >
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
<style>
html
{
Box-sizing: border-Box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after
{
Box-sizing: inherit;
}
body {
margin:0;
background: #fafafa;
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position:absolute;width:0;height:0">
<defs>
<symbol viewBox="0 0 20 20" id="unlocked">
<path d="M15.8 8H14v5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"></path>
</symbol>
<symbol viewBox="0 0 20 20" id="locked">
<path d="M15.8 8H14v5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"/>
</symbol>
<symbol viewBox="0 0 20 20" id="close">
<path d="M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"/>
</symbol>
<symbol viewBox="0 0 20 20" id="large-arrow">
<path d="M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"/>
</symbol>
<symbol viewBox="0 0 20 20" id="large-arrow-down">
<path d="M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"/>
</symbol>
<symbol viewBox="0 0 24 24" id="jump-to">
<path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/>
</symbol>
<symbol viewBox="0 0 24 24" id="expand">
<path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>
</symbol>
</defs>
</svg>
<div id="swagger-ui"></div>
<script src="./swagger-ui-bundle.js"> </script>
<script src="./swagger-ui-standalone-preset.js"> </script>
<script>
window.onload = function() {
// Build a system
const ui = SwaggerUIBundle({
//url: "http://petstore.swagger.io/v2/swagger.json",
url: "http://localhost:8080/apidoc/swagger.json",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
window.ui = ui
}
</script>
</body>
</html>
<symbol viewBox="0 0 24 24" id="jump-to">
<path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"/>
</symbol>
<symbol viewBox="0 0 24 24" id="expand">
<path d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>
</symbol>
</defs>
</svg>
<div id="swagger-ui"></div>
<script src="./swagger-ui-bundle.js"> </script>
<script src="./swagger-ui-standalone-preset.js"> </script>
<script>
window.onload = function() {
// Build a system
const ui = SwaggerUIBundle({
//url: "http://petstore.swagger.io/v2/swagger.json",//这里是默认的官方地址,将其改为自己项目的地址
url: "http://localhost:8080/apidoc/swagger.json",dom_id: '#swagger-ui',deepLinking: true,presets: [
SwaggerUIBundle.presets.apis,SwaggerUIStandalonePreset
],plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],layout: "StandaloneLayout"
})
window.ui = ui
}
</script>
</body>
</html>
{
"swagger": "2.0","info": {
"description": "swagger-ui的汉化版本","version": "1.0.0","title": "汉化版Swagger-UI","termsOfService": "http://swagger.io/terms/","contact": {
"email": "[email protected]"
},"license": {
"name": "Apache 2.0","url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},"host": "petstore.swagger.io","basePath": "/v2","tags": [
{
"name": "pet","description": "有关你宠物的所有事情!","externalDocs": {
"description": "Find out more","url": "http://swagger.io"
}
},{
"name": "store","description": "访问宠物商店订单!"
},{
"name": "user","description": "操作用户相关!","externalDocs": {
"description": "Find out more about our store","url": "http://swagger.io"
}
}
],"schemes": [
"http"
],"paths": {
"/pet": {
"post": {
"tags": [
"pet"
],"summary": "添加一个新宠物到商店!","description": "","author": "helei 更新于 2015/06/17 19:56","operationId": "addUser","consumes": [
"application/json","application/xml"
],"produces": [
"application/xml","application/json"
],"parameters": [
{
"in": "body","name": "body","description": "Pet object that needs to be added to the store","required": true,"schema": {
"$ref": "#/deFinitions/Pet"
}
}
],"responses": {
"405": {
"description": "Invalid input"
}
},"security": [
{
"petstore_auth": [
"write:pets","read:pets"
]
}
]
},"put": {
"tags": [
"pet"
],"summary": "更新存在的宠物信息","operationId": "updatePet","responses": {
"400": {
"description": "Invalid ID supplied"
},"404": {
"description": "Pet not found"
},"405": {
"description": "Validation exception"
}
},"read:pets"
]
}
]
}
},"/pet/findByStatus": {
"get": {
"tags": [
"pet"
],"summary": "根据状态查找宠物","description": "Multiple status values can be provided with comma seperated strings","operationId": "findPetsByStatus","parameters": [
{
"name": "status","in": "query","description": "Status values that need to be considered for filter","type": "array","items": {
"type": "string","enum": [
"available","pending","sold"
],"default": "available"
},"collectionFormat": "csv"
}
],"responses": {
"200": {
"description": "successful operation","schema": {
"type": "array","items": {
"$ref": "#/deFinitions/Pet"
}
}
},"400": {
"description": "Invalid status value"
}
},"/pet/findByTags": {
"get": {
"tags": [
"pet"
],"summary": "根据tags查找宠物","description": "Muliple tags can be provided with comma seperated strings. Use tag1,tag2,tag3 for testing.","operationId": "findPetsByTags","parameters": [
{
"name": "tags","description": "Tags to filter by","items": {
"type": "string"
},"400": {
"description": "Invalid tag value"
}
},"/pet/{petId}": {
"get": {
"tags": [
"pet"
],"summary": "根据id查找宠物","description": "Returns a single pet","operationId": "getPetById","parameters": [
{
"name": "petId","in": "path","description": "ID of pet to return","type": "integer","format": "int64"
}
],"schema": {
"$ref": "#/deFinitions/Pet"
}
},"400": {
"description": "Invalid ID supplied"
},"404": {
"description": "Pet not found"
}
},"security": [
{
"api_key": []
}
]
},"post": {
"tags": [
"pet"
],"summary": "根据表单数据,更新宠物数据","operationId": "updatePetWithForm","consumes": [
"application/x-www-form-urlencoded"
],"description": "ID of pet that needs to be updated","format": "int64"
},{
"name": "name","in": "formData","description": "Updated name of the pet","required": false,"type": "string"
},{
"name": "status","description": "Updated status of the pet","type": "string"
}
],"delete": {
"tags": [
"pet"
],"summary": "删除宠物","operationId": "deletePet","parameters": [
{
"name": "api_key","in": "header",{
"name": "petId","description": "Pet id to delete","responses": {
"400": {
"description": "Invalid pet value"
}
},"/pet/{petId}/uploadImage": {
"post": {
"tags": [
"pet"
],"summary": "更新图片","operationId": "uploadFile","consumes": [
"multipart/form-data"
],"produces": [
"application/json"
],"description": "ID of pet to update",{
"name": "additionalMetadata","description": "Additional data to pass to server",{
"name": "file","description": "file to upload","type": "file"
}
],"schema": {
"$ref": "#/deFinitions/ApiResponse"
}
}
},"/store/inventory": {
"get": {
"tags": [
"store"
],"summary": "返回宠物库存状态","description": "Returns a map of status codes to quantities","operationId": "getInventory","parameters": [],"schema": {
"type": "object","additionalProperties": {
"type": "integer","format": "int32"
}
}
}
},"security": [
{
"api_key": []
}
]
}
},"/store/order": {
"post": {
"tags": [
"store"
],"summary": "订购一个宠物","operationId": "placeOrder","description": "order placed for purchasing the pet","schema": {
"$ref": "#/deFinitions/Order"
}
}
],"schema": {
"$ref": "#/deFinitions/Order"
}
},"400": {
"description": "Invalid Order"
}
}
}
},"/store/order/{orderId}": {
"get": {
"tags": [
"store"
],"summary": "根据ID查找订单","description": "For valid response try integer IDs with value = 5 or > 10. Other values will generated exceptions","operationId": "getorderById","parameters": [
{
"name": "orderId","description": "ID of pet that needs to be fetched","maximum": 5,"minimum": 1,"404": {
"description": "Order not found"
}
}
},"delete": {
"tags": [
"store"
],"summary": "根据ID删除订单",1)"> 1000. Anything above 1000 or nonintegers will generate API errors","operationId": "deleteOrder","description": "ID of the order that needs to be deleted","type": "string","minimum": 1
}
],"404": {
"description": "Order not found"
}
}
}
},"/user": {
"post": {
"tags": [
"user"
],"summary": "创建用户","description": "This can only be done by the logged in user.","operationId": "createuser","description": "Created user object","schema": {
"$ref": "#/deFinitions/User"
}
}
],"responses": {
"default": {
"description": "successful operation"
}
}
}
},"/user/createWithArray": {
"post": {
"tags": [
"user"
],"summary": "根据传入数组,创建多个用户","operationId": "createusersWithArrayInput","description": "List of user object","items": {
"$ref": "#/deFinitions/User"
}
}
}
],"/user/createWithList": {
"post": {
"tags": [
"user"
],"summary": "根据列表创建多个用户","operationId": "createusersWithListInput","/user/login": {
"get": {
"tags": [
"user"
],"summary": "用户登录系统","operationId": "loginUser","parameters": [
{
"name": "username","description": "The user name for login",{
"name": "password","description": "The password for login in clear text","schema": {
"type": "string"
},"headers": {
"X-Rate-Limit": {
"type": "integer","format": "int32","description": "calls per hour allowed by the user"
},"X-Expires-After": {
"type": "string","format": "date-time","description": "date in UTC when toekn expires"
}
}
},"400": {
"description": "Invalid username/password supplied"
}
}
}
},"/user/logout": {
"get": {
"tags": [
"user"
],"summary": "用户退出登录,并清除session","operationId": "logoutUser","/user/{username}": {
"get": {
"tags": [
"user"
],"summary": "根据用户名获取用户","operationId": "getUserByName","description": "The name that needs to be fetched. Use user1 for testing. ","schema": {
"$ref": "#/deFinitions/User"
}
},"400": {
"description": "Invalid username supplied"
},"404": {
"description": "User not found"
}
}
},"put": {
"tags": [
"user"
],"summary": "更新用户","operationId": "updateUser","description": "name that need to be deleted",{
"in": "body","description": "Updated user object","responses": {
"400": {
"description": "Invalid user supplied"
},"delete": {
"tags": [
"user"
],"summary": "删除用户","operationId": "deleteUser","description": "The name that needs to be deleted","responses": {
"400": {
"description": "Invalid username supplied"
},"404": {
"description": "User not found"
}
}
}
}
},"securityDeFinitions": {
"petstore_auth": {
"type": "oauth2","authorizationUrl": "http://petstore.swagger.io/apI/Oauth/dialog","flow": "implicit","scopes": {
"write:pets": "modify pets in your account","read:pets": "read your pets"
}
},"api_key": {
"type": "apiKey","name": "api_key","in": "header"
}
},"deFinitions": {
"Order": {
"type": "object","properties": {
"id": {
"type": "integer","format": "int64"
},"petId": {
"type": "integer","quantity": {
"type": "integer","format": "int32"
},"shipDate": {
"type": "string","format": "date-time"
},"status": {
"type": "string","description": "Order Status","enum": [
"placed","approved","delivered"
]
},"complete": {
"type": "boolean","default": false
}
},"xml": {
"name": "Order"
}
},"Category": {
"type": "object","name": {
"type": "string"
}
},"xml": {
"name": "Category"
}
},"User": {
"type": "object","username": {
"type": "string"
},"firstName": {
"type": "string"
},"lastName": {
"type": "string"
},"email": {
"type": "string"
},"password": {
"type": "string"
},"phone": {
"type": "string"
},"userStatus": {
"type": "integer","description": "User Status"
}
},"xml": {
"name": "User"
}
},"Tag": {
"type": "object","xml": {
"name": "Tag"
}
},"Pet": {
"type": "object","required": [
"name","photoUrls"
],"category": {
"$ref": "#/deFinitions/Category"
},"name": {
"type": "string","example": "doggie"
},"photoUrls": {
"type": "array","xml": {
"name": "photoUrl","wrapped": true
},"items": {
"type": "string"
}
},"tags": {
"type": "array","xml": {
"name": "tag","items": {
"$ref": "#/deFinitions/Tag"
}
},"description": "pet status in the store","enum": [
"available","sold"
]
}
},"xml": {
"name": "Pet"
}
},"ApiResponse": {
"type": "object","properties": {
"code": {
"type": "integer","type": {
"type": "string"
},"message": {
"type": "string"
}
}
}
},"externalDocs": {
"description": "了解一下我们吧!","url": "https://github.com/helei112g"
}
}
写完后,配置好后,maven build一下
然后打开浏览器输入相对应的网址:localhost:8080/apidoc 就会出来一个文档界面
文档界面出来后,根据自己需要,模仿swagger.json文件,自己修改添加删除改造成自己想要的那样
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。