1. 依赖
<!-- 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-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2.配置Swagger
Swagger的Bean实例为Docket
import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwapperConfig extends WebMvcConfigurationSupport {
@Bean
public Docket docket() {
Boolean flag = false;
if (!env.isEmpty() && env.equals("dev")) {
flag = true;
}
return new Docket(DocumentationType.SWAGGER_2)
.groupName("MI")
.apiInfo(apiInfo())
.enable(flag)
// 扫描配置
.select()
// 扫描指定包 .apis(RequestHandlerSelectors.withClassAnnotation(RequestMapping.class))
.apis(RequestHandlerSelectors.basePackage("com.gy.mapapitest"))
.build();
}
private ApiInfo apiInfo() {
Contact contact = new Contact("jack", "baidu.com","4253@qq.com");
return new ApiInfo("后端API",
"Jack的API",
"1.0",
"https://blog.csdn.net/qq_29897369/article/details/104585296",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
/**
* 设置静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
3.访问页面
http://localhost:8081/swagger-ui.html
4.注释
- 实体类: @ApiModel、@ApiModelProperty
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
@ApiModel("用户实体类")
@Data
@ToString
public class User {
// 要有get和set方法
@ApiModelProperty("用户名")
private String name;
@ApiModelProperty("密码")
private String password;
}
- 方法:@Api、@ApiOperation
import com.gy.mapapitest.entity.User;
import com.gy.mapapitest.service.ExtractContent;
import com.gy.mapapitest.service.NvidiaApiService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import okhttp3.Response;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
@Api(tags = "llvm 的 API")
@RestController
@RequestMapping("/llvm")
public class LlmController {
@ApiOperation("发送请求")
@CrossOrigin(origins = "*", allowedHeaders = "*")
@GetMapping("/query")
public String query(@RequestParam("query") String query) throws IOException {
Response response = NvidiaApiService.query(query);
return ExtractContent.extract(response.body().string());
}
@ApiOperation("用户登录")
@PostMapping("/user")
public String user(@RequestBody User user) {
System.out.println(user.toString());
return "hello";
}
}