首页天道酬勤swagger界面,swagger1

swagger界面,swagger1

admin 05-05 21:32 198次浏览

Swagger使用便笺使用Swagger编码生成代码,并浏览github :https://github.com/swagger-API/swagger-codegen

首先在项目pom中添加依赖关系:

ependencygroupidio.swagger/groupidartifactidswagger-codegen-maven-plugin/artifactidversion2.4. 17/version/averaction

插件介绍Gittee仓库: https://gitee.com/mirrors/swagger-codegen? _from=gitee_search

官方介绍:

总结:关键字OpenAPI、服务端、客户端、文档。 swagger-codegen可以基于符合OpenAPI定义的文件生成相应的服务端、客户端代码和接口的说明文档。

呼叫方法目前我知道的呼叫方法主要有以下两种。

通过直接从官方提供的jar包中调用Java swagger-codegen-CLI.jar xxxx来集成maven插件,在pom中执行编译过程调用。 本文也主要使用这种方法。 生成服务端代码定义接口描述文件yaml

以最简单的get界面为例,yaml的内容是: swagger : ' 2.0 ' info :说明: '测试swagger ' version : '1.0.0' test : get : consumes 3360 -应用程序/JSON produces 3360 -应用程序/JSON response 33602003360描述3360成功目录结构

配置maven编译步骤并调用swagger-codegen-maven-plugin

plugingroupidio.swagger/groupidartifactidswagger-codegen-maven-plugin/artifactidversion2.3.1/version execution goalsconfigurationinputspec $ { project.basedir }/src/main/resources/test.YAML/inputspeclanguagespring/YAML/inputspeclanguagespring libraryapipackageblog.test/apipackageoutput $ { project.basedir }/generate/outputgenerateratesuppppppack

编码mojo.class @ mojo (name=' generate ',default phase=life cycle phase.generate _ sources,threadSafe=true ) )

gittee地址: https://gitee.com/mirrors/swagger-codegen/tree/master/modules/swagger-codegen-maven-plugin

最终取得的效果:

目录结构:

testapi.class/* * note : thisclassisautogeneratedbytheswaggercodegeneratorprogram (2.3.1) * https://

github.com/swagger-api/swagger-codegen * Do not edit the class manually. */package blog.test;import io.swagger.annotations.*;import org.springframework.http.ResponseEntity;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestHeader;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RequestPart;import org.springframework.web.multipart.MultipartFile;import javax.validation.Valid;import javax.validation.constraints.*;import java.util.List;@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2020-12-27T10:58:24.379+08:00")@Api(value = "test", description = "the test API")public interface TestApi { @ApiOperation(value = "", nickname = "testGet", notes = "", tags={ }) @ApiResponses(value = { }) @RequestMapping(value = "/test", produces = { "application/json" }, consumes = { "application/json" }, method = RequestMethod.GET) ResponseEntity<Void> testGet();} TestApiController.classpackage blog.test;import com.fasterxml.害怕的含羞草.databind.ObjectMapper;import io.swagger.annotations.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestHeader;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RequestPart;import org.springframework.web.multipart.MultipartFile;import javax.validation.constraints.*;import javax.validation.Valid;import javax.servlet.http.HttpServletRequest;import java.io.IOException;import java.util.List;@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2020-12-27T10:58:24.379+08:00")@Controllerpublic class TestApiController implements TestApi { private static final Logger log = LoggerFactory.getLogger(TestApiController.class); private final ObjectMapper objectMapper; private final HttpServletRequest request; @org.springframework.beans.factory.annotation.Autowired public TestApiController(ObjectMapper objectMapper, HttpServletRequest request) { this.objectMapper = objectMapper; this.request = request; } public ResponseEntity<Void> testGet() { String accept = request.getHeader("Accept"); return new ResponseEntity<Void>(HttpStatus.NOT_IMPLEMENTED); }} 遇到问题

生成代码后多出了一堆非服务端相关的代码,同时报某些依赖包不存在:

目录结构:

从目录结构可以看出来,这个是一个完整的springmvc项目,有对应的WebApplication配置。swagger除了生成代码外,还支持生成接口的描述文档,这里生成的代码可以直接作为一个项目启动,以web项目的方式作为接口描述手册。如果不想生成这些代码的话,在plugin设置中加上参数:

<generateSupportingFiles>false</generateSupportingFiles>

就不会生成API手册相关的文件了。

java身份证合法性校验工具类实例代码C#调用腾讯即时通信IM的示例
Springboot的优点,swagger2做什么的 linux移动文件命令,jps命令无效
相关内容