swagger-php 快速上手指南
小结
swagger 学习用时2天,天宫一号预计在2018年03月31日到2018年04月01日坠落地球,碎片坠落地点未知。
天宫一号的坠落,可以说我朝近年的航天成果全灭。
报道断章取义…… 陨落只是时间问题。小额外汇貌似限制了,实际未测试。
使用DarkaOnLine/L5-Swagger
可以在代码中以注释形势直接编写API
文档非常方便。
注释中的语法要使用Swagger-php
样式,SWAGGER VERSION 3.0
DarkaOnLine/L5-Swagger安装
项目使用的是laravel 5.5
对应 darkaonline/l5-swagger:5.5.*
1 | composer require "darkaonline/l5-swagger:5.5.*" |
复制设置与视图文件
1 | php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider" |
SWAGGER VERSION 3.0
支持
1 | composer require "zircote/swagger-php:3.x-dev" |
设置.env
文件
L5_SWAGGER_GENERATE_ALWAYS=true
为每次打开页面是都进行重新渲染,设计阶段非常好用。
1 | SWAGGER_VERSION=3.0 |
基础文件设置
swagger-v3.php
用于设置一些基本API信息,在页面最上方显示。
1 | /** |
@OAS 为使用前缀,用于读取swagger
的设置
名头 | 解释 | 是否必要 | 其他说明 |
---|---|---|---|
OpenApi | swagger 初始化 | 必要 | 唯一并位于全部设置最顶端 |
Info | Api说明 | 必要 | 设置中的title 与version 为必要项 |
Server | Api 前置路径 | 非必要 | 多连接时,可以并行设置 |
ExternalDocumentation | 扩展文档 | 非必要 | 只能设置description 与url |
paths | 连接地址 | 必要 | 可以在控制器位置设置 |
tags | 主标签 | 必要 | 与laravel 一起使用时,独立设置方便管理。可以设置name 、description 、ExternalDocumentation |
tags.php
用于设置用户标签
1 | /** |
path 部分
直接使用注释形势写入控制器
1 | /** |
Model 数据参数
可以直接设置在class之上,使用ref="#/components/schemas/ClassName"
可以直接引用。
swagger
默认载入位置#/components/schemas/
。
1 | /** |
bitbeans/yubikey 的坑
控制器中不能正常获取Exception
。所以不能使用下方代码
1 | use YubiKey; |
改写到App\Exceptions\Handler
的render
方法判断,使用Exception
判断的packages
不多。
1 | switch($exception->getMessage()) { |
以上
2018年03月24日
心情
宫墙深厚,近日又动刀字幕组,一如既往的套路……
最近迷上了摇曳露营,抚子好萌。
同款 迷你净财箱B-6君
同款 帐篷ムーンライトテント3型
巡礼路线
心仪之物
heimplanet帐篷
Fistral 2.5KG 充气帐篷 总之打气就好~~
ムーンライトテント3型 是3.8KG
THE CAVE 5.2KG 充气帐篷 防水性比Fistral好,空间也大。
YPJ-TC
yamaha 新款电动自行车 想入呢 2018年6月11日上市
以上
2018年03月01日
小记
ssr
的tls
被爆,大规模封禁来袭,转v2ray
直接部署非常容易,使用docker
快速部署是正解,
实现websocket+tls+V2ray+Nginx+CDN
起因,2018年2月15日开始梯子出现故障,换之。
2018年2月25日 戊戌复辟
,可笑至极,诸多词变为禁语。包括张勋
、袁世凯
等等。微博、微信,禁止修改头像,签名。反对
等不能发表。
马前课 第十一课 开始了……
2月26日开始研究部署v2ray
相关,其中遇坑,记录如下,供后人参考。
原理
v2ray 使用websocket
连接到CDN
,对抗DNS
污染,保护真实IP
CDN
连接在到服务器
,全程通讯使用tls
加密。【不是仿造,是真正的TLS】,服务器内部转发到v2ray
容器。
Q:为什么使用
docker
而不是直接部署?
A:不方便转移到其他服务器。同时不容易弄乱服务器环境
Q:docker
好处是什么
A:不需要手动更新证书,可以使用二级域名部署其他服务。比如web
、
docker
大多数供应商都支持docker
快速构建,直接选择即可。服务器多为ubuntu
。
更新各种包后,准备开始工作。
更新命令
1 | $ apt update |
文件目录
1 | |-- docker-compose.yml |
docker-compose.yml
说明:
v2ray
下的VIRTUAL_HOST
注意填写为二级域名,也可以去掉不填。
同样v2ray
下的expose
与VIRTUAL_PORT
为端口号,应该与*****_location
中端口一致。
web1
为一般web服务器,开放端口80
。You_Domain_Name
改为你的域名You_Email
为邮箱,必填
- VIRTUAL_HOST=
You_Domain_Name
- VIRTUAL_PORT=
80
- LETSENCRYPT_HOST=
You_Domain_Name
- LETSENCRYPT_EMAIL=
You_Email
nginx-proxy
如名字,详情自行google
letsencrypt-nginx-proxy-companion
如名字,详情自行google
1 | version: '2' |
TLS转发
在dockec-compose.yml
下创建vhost.d
文件件,
新建文件You_Domain_Name_location
使用你的域名替换You_Domain_Name
,要与web1
设置的一致。
注意proxy_pass
后的端口与v2ray
设置的一致。
1 | proxy_redirect off; |
v2ray 设置文件config.json
在dockec-compose.yml
下创建v2ray
文件件,
新建文件config.json
port
注意与v2ray
设置一致
id
改为你的id
,可以使用uuidgenerator生成一个。
json
写完之后,注意校对格式哦
1 | { |
之后
去用户端里面设置吧。地址You_Domain_Name
端口443
,记得使用websocket
与TLS
。
CDN
CloudFlare
DNS
中开启websocket
Crypto
中Require Modern TLS
关闭
Crypto
中Authenticated Origin Pulls
关闭
Crypto
中Opportunistic Encryption
关闭
nginx-proxy 的坑
nginx-proxy
中,设置转发时www.www.com/path
无法正常解析,这个问题3年没有修复过了……
错误重现:vhost.d
下,新建www.www.com
设置
1 | location /v2ray/ { |
于是只能使用www.www.com_location
进行转发。
参考文档
2018年02月22日
小记
quasar-cli
升级到了0.15.1
与之前版本不兼容……
不支持quasar-play
目录结构有所调整,比之前清晰多了,加上一次编程构建PWA
、Cordova
、Electron
全平台大礼包。
和预想的一样,android
就是坑多。
安装 JAVA 8
Android Studio
依然不好下载。墙!墙!墙! 略烦。
需要java
……,直接使用brew cask install java
安装是9.0+
版本,不兼容Cordova
需要装java8
,方法如下
1 | brew tap caskroom/versions |
使用/usr/libexec/java_home -V
查看本机安装的JDK
安装jenv
用于管理与切换java
版本brew install jenv
1 | echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc |
1 | jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home |
需要重启使用java -version
检查设置
其他设置方法。
1 | jenv local 1.8.0.162 |
安装 Android Studio
1 | brew cask install android-studio |
之后还是要等……
zshrc
编辑~/.zshrc
,并添加下方代码
1 | export ANDROID_HOME="$HOME/Library/Android/sdk" |
Cordova 构建需要 gradle
1 | brew install gradle |