Swagger UI將API信息可視化,任何人可以查看api信息并進(jìn)行交互
1. pom.xml 添加依賴
<!-- https://mvnrepository.com/artifact/io.swagger/swagger-models -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.22</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.swagger/swagger-annotations -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-bean-validators -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>2.9.2</version>
</dependency>
2. 配置類
@Configuration //需要添加這個(gè)
@EnableSwagger2 //需要添加這個(gè)
public class mySwaggerConfig{
}
package com.example.questionlist2.cofig;
import com.google.common.collect.Lists;
import net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.server.PathContainer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger 引入, 自己的swagger配置類
*/
@Configuration
@EnableSwagger2
public class mySwaggerConfig {
@Bean
public Docket docket(){
ParameterBuilder builder = new ParameterBuilder();
builder.parameterType("header").name("myKey")
.description("My Swagger try try try")
.required(true)
.modelRef(new ModelRef("String")); //swagger中展示header
return new Docket(DocumentationType.SWAGGER_2)
.groupName("my swagger try")
.apiInfo(apiinfo())
.globalOperationParameters(Lists.newArrayList(builder.build()))
.select().paths(PathSelectors.any()).build();
}
private ApiInfo apiinfo(){
return new ApiInfoBuilder()
.title("questionSystem")
.description("question 接口文檔")
.contact(new Contact("163email","","windelubnu@163.com"))
.version("1.0")
.build();
}
}
3. 常用注解
重啟服務(wù)轰枝, 并進(jìn)入頁(yè)面http://localhost:7777/swagger-ui.html#/basic-error-controller
swagger-ui.html
## 1). @Api("getquestion") @ApiOperation("跟service相關(guān)")
@Api("getquestion")
@RestController //Spring會(huì)轉(zhuǎn)換返回值并將日寫入http相應(yīng)
//@RequestMapping("get") //用于類和防范化撕,在方法級(jí)別時(shí)儡毕, 處理http的各種防范
public class getListController {
@Autowired //向這個(gè)bean中注入其他bean questionServiceImpl
private questionServiceImpl questionServiceimpl;
@ApiOperation("跟service相關(guān)")
@PostMapping("getquestion4impl")
public String getQuestion3(@RequestBody questionDto q){
return "getquestion4impl >>"+ questionServiceimpl.getQuestion3(q);
}
@Value("${config.key}") //如果沒(méi)有${} 就會(huì)將config.key 賦值給key
private String key;
@GetMapping("get")
@ApiOperation("跟配置相關(guān)")
public String get(){
return "hello get"+key;
}
圖片.png
2). @ApiModel @ApiModelProperty
package com.example.questionlist2.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "Question 類",description = "請(qǐng)求類")
public class questionDto {
@ApiModelProperty(value="question 類型",example = "type1",required = true)
private String QuestionType;
private String keyword;
@ApiModelProperty(value="question 名稱",example = "name1",required = true)
private String questionName;
private String dependOnQuestion;
private String book;
// public String getQuestionType() {
// return QuestionType;
// }
//
// public void setQuestionType(String questionType) {
// QuestionType = questionType;
// }
//
// public String getKeyword() {
// return keyword;
// }
//
// public void setKeyword(String keyword) {
// this.keyword = keyword;
// }
//
// public String getQuestionName() {
// return questionName;
// }
//
// public void setQuestionName(String questionName) {
// this.questionName = questionName;
// }
//
// public String getDependOnQuestion() {
// return dependOnQuestion;
// }
//
// public void setDependOnQuestion(String dependOnQuestion) {
// this.dependOnQuestion = dependOnQuestion;
// }
//
// public String getBook() {
// return book;
// }
//
// public void setBook(String book) {
// this.book = book;
// }
public questionDto(String questionType, String keyword, String questionName, String dependOnQuestion, String book) {
this.QuestionType = questionType;
this.keyword = keyword;
this.questionName = questionName;
this.dependOnQuestion = dependOnQuestion;
this.book = book;
}
}
model