H5W3
当前位置:H5W3 > php > 正文

【php】从零开始学Laravel(二)Laravel集成Swagger

从零开始学Laravel(二)Laravel集成Swagger

akez发布于 2020-12-03

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

一.Swagger的安装

这里我们选择darkaonline/l5-swagger,这个集成了很多swagger组件,比较方便。
1.使用composer添加该包,具体使用哪个版本可以参照下图,也可以在https://github.com/DarkaOnLin… 查看【php】从零开始学Laravel(二)Laravel集成Swagger

composer require darkaonline/l5-swagger

2.发布

php artisan vendor:publish --provider "L5SwaggerL5SwaggerServiceProvider"

3.如果Laravel >=5.5,找到app.php,如图添加L5SwaggerL5SwaggerServiceProvider::class
【php】从零开始学Laravel(二)Laravel集成Swagger
现在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 就可以看见自己写好的接口文档了。
【php】从零开始学Laravel(二)Laravel集成Swagger
简单的swagger安装和配置和注释的编写已经完成了,但这只是最简单简单的,文档注释的编写是很复杂的,这个要好好看看。

phplaravelswagger
阅读 157发布于 2020-12-03
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar

akez

Hello World!

4 声望
0 粉丝

0 条评论
得票时间

avatar

akez

Hello World!

4 声望
0 粉丝

宣传栏

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

一.Swagger的安装

这里我们选择darkaonline/l5-swagger,这个集成了很多swagger组件,比较方便。
1.使用composer添加该包,具体使用哪个版本可以参照下图,也可以在https://github.com/DarkaOnLin… 查看【php】从零开始学Laravel(二)Laravel集成Swagger

composer require darkaonline/l5-swagger

2.发布

php artisan vendor:publish --provider "L5SwaggerL5SwaggerServiceProvider"

3.如果Laravel >=5.5,找到app.php,如图添加L5SwaggerL5SwaggerServiceProvider::class
【php】从零开始学Laravel(二)Laravel集成Swagger
现在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 就可以看见自己写好的接口文档了。
【php】从零开始学Laravel(二)Laravel集成Swagger
简单的swagger安装和配置和注释的编写已经完成了,但这只是最简单简单的,文档注释的编写是很复杂的,这个要好好看看。

本文地址:H5W3 » 【php】从零开始学Laravel(二)Laravel集成Swagger

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址