乐趣区

关于laravel:从零开始学Laravel二Laravel集成Swagger

我是 Java 转的 php,这两天开始学习 php, 然而因为赶进度学的很快,3 天功夫就开始搭建 Laravel 框架了,只是说是知其然而不知其所以然,相当于从零开始,写的学习 Laraveldemo 的源码在我的 github akaedison/blog (github.com) 上,大家刚开始学的话能够参照一下。

一.Swagger 的装置

这里咱们抉择 darkaonline/l5-swagger,这个集成了很多 swagger 组件,比拟不便。
1. 应用 composer 增加该包,具体应用哪个版本能够参照下图,也能够在 https://github.com/DarkaOnLin… 查看

composer require darkaonline/l5-swagger

2. 公布

php artisan vendor:publish --provider "L5SwaggerL5SwaggerServiceProvider"

3. 如果 Laravel >=5.5,找到 app.php,如图增加 L5SwaggerL5SwaggerServiceProvider::class

当初 swagger 的装置是实现了,接下来就是配置和正文的编写

二.Swagger 的配置

1. 新建一个 SwaggerController,用于测试 swagger

php artisan make:controller SwaggerController 

这里把 SwaggerController 的代码放在这里,大家能够参考下正文的写法

<?php
namespace AppHttpControllers;
use AppModelsModelsBook;
use SymfonyComponentHttpFoundationJsonResponse;
/**
 * @OAInfo(title="图书",version="1")
 * Class BookController * @package AppHttpControllers
 */class BookController extends Controller
{
 /**
 * @OAGet(*     path="/api/book/{id}", * @OAParameter(*     name="id", *     required=true, *     in="path" *), * @OAResponse(response=200,description="返回依据 id 查问的书")
 * ) * @param $id
 * @return IlluminateHttpJsonResponse|JsonResponse
 */ public function getBookById($id)
 { // 依据 id 查问
 $book = Book::query()->find($id);
 // return response()是返回想要 json()转换成 json 字符串然而是 unicode setEncodingOptions 设置编码
 return response()->json($book)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
 }
 /**
 * @OAget(*     path="/api/allBook", * @OAResponse(response=200,description="查问所有图书")
 * ) * @return IlluminateHttpJsonResponse|JsonResponse
 */ public function getAllBook()
 {$books = Book::all();
 return response()->json($books)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
 }
}

而后在路由中配置
2. 依据写好的正文生成 api 文档
运行以下命令

php artisan l5-swagger:generate

如果呈现谬误,少数是因为正文没写对。
3. 运行我的项目,拜访 Swagger-Ui

php artisan serve

运行起来之后拜访 http://127.0.0.1:8000/api/documentation 就能够看见本人写好的接口文档了。

简略的 swagger 装置和配置和正文的编写曾经实现了,但这只是最简略简略的,文档正文的编写是很简单的,这个要好好看看。

退出移动版