一,安装
1.删除composer.lock
2.在composer.json文件里面的require 添加包
"darkaonline/l5-swagger": "^6.2",
3.清楚缓存
composer clearcache
4.更新依赖(重新生成 composer.lock )
composer update
5.安装完成后,使用如下 Artisan 命令发布该扩展包的配置和视图文件:
php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"
6.写注释
in注释里面
header是头文件
path路径
/**
* @OA\Post(
* path="/ccc",
* operationId="newTaskItem",
* tags={"测试-oys"},
* summary="测试post方法 传json格式的数据",
* description="测试post方法 传json格式的数据,用post方法,传json",
* @OA\RequestBody(
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(ref="#/components/schemas/UserModel"),
* example={
* "student_name": "欧阳松",
* "student_age": "20",
* "student_status": "true",
* }
* )
* ),
* @OA\Response(response=200,description="返回成功",),
* @OA\Response(response=404,description="路径错误"),
* @OA\Response(response=422,description="参数错误"),
* @OA\Response(response=500,description="代码或者参数参数"),
*
* security={
* {"passport": {}},
* }
* )
*/
* @OA\Schema(
* schema="UserModel",
* required={"student_name","student_age","student_status"},
* @OA\Property(
* property="student_name",
* type="string",
* description="用户名称"
* ),
* @OA\Property(
* property="student_age",
* type="integer",
* description="年龄"
* ),
* @OA\Property(
* property="student_status",
* type="boolean",
* description="状态"
* )
* )
7.根据注释生成api文档
php artisan l5-swagger:generate
8.访问
http://127.0.0.1:8000/api/documentation
10.为什么开发不用web.php, 用api.php,
web.php有web中间件由都位于 web 中间件群组,该群组默认启用 CSRF 保护检查,用ajax需要csrf防护,开发网站,用一些ajax就可以用web,
如果不是网页,微信小程序,安卓, 需要第三方提高接口,就用api.php
CSRF跨站请求伪造
攻击者利用URL或者Javascript伪造了一个请求,当用户点击攻击者设置的陷阱时(例如未知的第三方链接)即会发送该伪造的请求。若此时用户刚好访问过该正常网站并且此时用户浏览器与服务器的Session尚未过期,浏览器的 cookie 之中含有该用户的认证信息。此时该请求将会认证通过,服务器将会认为这是用户本人发出的合法请求,此时请求生效。CSRF攻击成功。
即攻击者盗用了你的身份,以你的名义发送了恶意请求,而对于服务器来说该请求是合法请求。
CSRF必须的条件:
1.被伪造身份的目标曾在该浏览器上访问过CSRF站点,且cookies尚未过期。
2.目标被引诱在该浏览器上访问了攻击者放置恶意代码的域名或网站。
在 .env里面设置路径
# swagger配置# 表示开启每次自动生成文档 和使用的swagger版本是3.0L5_SWAGGER_GENERATE_ALWAYS=falseSWAGGER_VERSION=3.0#L5_SWAGGER_CONST_HOST=oys68.cn
接口列表展开
vendor/swagger-api/swagger-ui/dist/swagger-ui-bundle.js 中找到 docExpansion:“list”
把list改成none即可全局默认不展开接口列表。
docExpansion=none为不展开。 docExpansion=list为展开 docExpansion=full为全部展开,包括接口的详细信息
|