我是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的代码放在这里,大家能够参考下正文的写法
<?phpnamespace 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装置和配置和正文的编写曾经实现了,但这只是最简略简略的,文档正文的编写是很简单的,这个要好好看看。