Ecx 生成swagger文档
swagger集成到lumen
使用
在 bootstrap中新增
$app->register(EspierSwaggerProvidersSwaggerServiceProvider::class);
在ECX中, 只要APP_ENV 不等于 staging productions 就可以省略以上部分
然后执行命令,将swagger UI的资源拷贝到public目录中.
php artisan api:swagger --setup
如需生成指定目录的swagger API josn文件则使用
php artisan api:swagger --output=[/path/to/project];
在ECX中,只需执行以下文件即可
sh api
sh salesperson-api
查看.env中
如果是local 请查看
是否有你想要的文件路径,如果有则代表你已经生成成功了
默认JSON文件生成目录为Storage的apidocs
中,可通过在.env
中新增配置改变存储目录名称
SWAGGER_STORAGE_DIR=apidocs
生成API JSON文件后通过路由访问
http://example.com/api-doc
设置.env中的 SWAGGER_API_HOST
3.查看ng配置中 访问上边设置的域名+后端代码所对应的端口号+api-doc 请注意,是后端代码所在的端口号,而不是前端代码
比如 http://ecx.test:8005/api-doc
再比如
如果需改变路由名称则可以通过.env
配置
SWAGGER_DOCS_ROUTER=api-doc
如果需要使用mock server 则必须安装PHP的Yaml扩展,并且启动mock server服务
php artisan api:swagger --mock-server-start
在开发阶段因为团队中每个人的环境配置不一致,API需要绑定不同的访问地址。
那么则不能用API中定义的host和basePath作为测试地址。
以便于个人开发测试,那么则可以通过.env
配置个人的host和basePath。
SWAGGER_API_HOST= SWAGGER_API_BASE_PATH=
线上打不开的情况,要配置这个?
location /api-doc/ {
access_log /var/log/nginx/access.log;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 32m;
client_body_buffer_size 256k;
proxy_pass http://localhost:8090;
}
location /api-json {
access_log /var/log/nginx/access.log;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 32m;
client_body_buffer_size 256k;
proxy_pass http://localhost:8090;
}
location /swagger-ui/ {
access_log /var/log/nginx/access.log;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 32m;
client_body_buffer_size 256k;
proxy_pass http://localhost:8090;
}