两人或多人协作开发前后端分离项目,需要有一个api文档.例如后端人员编写api文档,前端人员如何才能查看到实时的文档,以此方便地在前端页面写入正确的交互接口(例如 ajax里type为get,url为xxx/users/2,dataType为json,这需要查看api文档).
此时,分为2种情况,一是大家在同一局域网内,二是不在.这里就对应2种处理方式.
方式1:后端的本机项目(如springboot)作为文档的服务器
大概操作:
后端pom导入swagger和swagger-ui:
<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.6.1</version>
</dependency>
写一个配置类:配置扫controller包
@Configuration
@EnableSwagger2
public class Swagger {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
}
}
启动项目,访问:http://你的局域网ip:配置的端口/swagger-ui.html (cmd -> ipconfig /all 可查看局域网ip),我这里是192.168.1.2.
自己尝试访问:
我用自己的移动设备,使用同一局域网,访问 :
这样,相当于前后端开发者就都能查看api文档了.
但充当前端前端开发者的移动设备更换网络,不在同一局域网内时,访问就如下:
此时,可以查看第二种方式.
方式2: 第三方程序作为文档的服务器
该方法的原理就是在公网上为你分配了唯一的域名,且访问该域名能映射到你配置好的本机端口,这也就是所谓的内网穿透.具体操作,可以参考 : https://blog.csdn.net/weixin_45791445/article/details/105976834
移动端访问: http://分配的域名/swagger-ui.html
此时,无论是否在同一局域网下,都能访问到:
其实,此时这个第三方程序也可测试接口返回信息,类似于postman的作用。