--------上图 截取自Github 官网上的安装参考-----------------------------------------------------------------------------------------------------------------------------------------------------------

本人只用到了Laravel5.5.x, 所以只讲此版本的安装,所有步骤如下

①步骤1:

在你搭建的laravel项目根目录中执行命令:  composer require "darkaonline/l5-swagger:5.5.*"

②步骤2:

继续在项目根目录中执行命令: php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"

执行该命令后,会在config目录下产生一个l5-swagger.php的配置文件,里面包含了swagger标题,token验证,路由等常用的基本配置
其中’generate_always’配置可以根据需要修改下,它表示是否每次都刷新swagger, 示例如下:

'generate_always' => env('L5_SWAGGER_GENERATE_ALWAYS', false),        //  把false改为true,你每次修改了配置它就会马上更新, 否则你更改了配置它不会马上生效

③步骤3:

在项目根目录中执行命令: composer require 'zircote/swagger-php:2.*'

然后启动项目,浏览器访问测试:你的网站地址/api/documentation 可以看到swagger的界面了,但会提示缺少api-docs.json文件。

需在项目app下创建个php文件(注意:我是直接放在app文件夹下,放在app/http的Controllers文件夹下也可以),命名为:swagger.php  文件内容如下:

<?php
/**
* Class Controller
*
* @package App\Http\Controllers
*
* @SWG\Swagger(
* basePath="",
* host="127.0.0.1",
* schemes={"http"},
* @SWG\Info(
* version="1.0",
* title="OpenApi",
* @SWG\Contact(name="Pek Ratanak", url="https://www.google.com"),
* ),
* @SWG\Definition(
* definition="Error",
* required={"code", "message"},
* @SWG\Property(
* property="code",
* type="integer",
* format="int32"
* ),
* @SWG\Property(
* property="message",
* type="string"
* )
* )
* )
*/

  

④步骤4:在项目根目录中执行命令: php artisan l5-swagger:generate           // 如果上面不创建swagger.php 如果执行此命令就会抛出错误:  In Logger.php line 38: Required @SWG\Info() not found    切忌!

现在重新访问 你的网站地址/api/documentation 刷新swagger就可以了 如图:

在app/http/Controllers文件夹下ApiController.php代码如下:

<?php
/**
* Created by PhpStorm.
* User: compter
* Date: 2018/8/30
* Time: 15:17
*/ namespace App\Http\Controllers; use Illuminate\Http\Request; class ApiController extends Controller
{
/**
* @SWG\GET(
* path="/api/index",
* summary="api index by tags",
* tags={"测试"},
* description="返回测试内容",
* operationId="apIndex",
* produces={"application/json"},
* @SWG\Parameter(
* name="tags",
* in="query",
* description="拿数据的理由",
* required=true,
* type="string",
* ),
* @SWG\Response(
* response=200,
* description="Dashboard overview."
* ),
* @SWG\Response(
* response=401,
* description="Unauthorized action.",
* )
* )
*/
public function index(Request $request)
{
return response()->json([
'result' => [
'statistics' => [
'users' => [
'name' => 'Name',
'email' => '213213@qq.com'
]
],
],
'message' => '',
'type' => 'success',
'status' => 0
]);
}
}

添加laravel的路由中 Route::get('/api/index','ApiController@index');

重新访问刷新页面即可 ----------我的预览图如下 

以下为get方法的一些案例演示

<?php
/**
* Created by PhpStorm.
* User: compter
* Date: 2018/8/30
* Time: 15:17
*/ namespace App\Http\Controllers; use Illuminate\Http\Request; class ApiController extends Controller
{
//前端测试用接口
public function a () {
return [
'name' => '急急急',
'sex' => 18,
];
}
/**
* @SWG\GET(
* path="/api/index",
* summary="接口简介",
* tags={"接口标签,可以是多个"},
* description="接口描述,支持 Markdown 语法",
* operationId="操作的ID,需要唯一",
* produces={"application/json"},
* @SWG\Parameter(
* name="tags",
* in="query",
* description="拿数据的理由",
* required=true,
* type="string",
* ),
* @SWG\Response(
* response=200,
* description="Dashboard overview."
* ),
* @SWG\Response(
* response=401,
* description="Unauthorized action.",
* )
* )
*/
public function index(Request $request)
{
return response()->json([
'result' => [
'statistics' => [
'users' => [
'name' => 'Name',
'email' => '213213@qq.com'
]
],
],
'message' => '',
'type' => 'success',
'status' => 0
]);
}
}

 

<?php
/**
* 我的主页面
* User: computer
* Date: 2018/8/31
* Time: 15:21
*/ namespace App\Http\Controllers\MySelf; use App\Http\Controllers\Controller;
use App\Models\Accountee;
use App\Models\Channel;
use Illuminate\Support\Facades\Auth; class HomeController extends Controller
{
/**
* @SWG\Get(
* path="/my_self/home/index",
* summary="我的主页面",
* tags={"我的主页面"},
* description="我的主页面",
* operationId="home.index",
* produces={"application/json"},
* @SWG\Response(
* response=200,
* description="基本信息",
* @SWG\Schema(
* type="json",
* @SWG\Property(
* property="channel_id",
* type="integer",
* description="资产渠道id"
* ),
* @SWG\Property(
* property="telephone",
* type="string",
* description="手机号"
* ),
* @SWG\Property(
* property="short_name",
* type="string",
* description="企业简称"
* )
* )
* ),
* @SWG\Response(
* response=422,
* description="error",
* )
* )
*/
public function index()
{
$channel=Channel::find(100033,['id','telephone','short_name']);
$channel['telephone']=substr_replace($channel->telephone,'*****',3,5); // 手机号脱敏
return $channel;
}
}

<?php
/**
* 用户资料管理
* User: computer
* Date: 2018/8/31
* Time: 15:21
*/ namespace App\Http\Controllers\MySelf; use App\Http\Controllers\Controller;
use App\Models\InfoPerson;
use Illuminate\Http\Request; class UserController extends Controller
{
/**
* @SWG\Get(
* path="/my_self/user/index",
* summary="用户资料管理",
* tags={"用户列表"},
* description="用户资料列表",
* operationId="user.index",
* produces={"application/json"},
* @SWG\Parameter(
* name="page",
* in="query",
* description="分页编号,默认1",
* type="integer",
* ),
* @SWG\Parameter(
* name="pagesize",
* in="query",
* description="每页显示条数,默认10",
* type="integer",
* ),
* @SWG\Response(
* response=200,
* description="用户列表",
* @SWG\Schema(
* type="json",
* @SWG\Property(
* property="pages",
* @SWG\Property(
* property="totalnum",
* type="integer",
* description="记录总数",
* ),
* @SWG\Property(
* property="totalpage",
* type="integer",
* description="总页数",
* ),
* @SWG\Property(
* property="pagesize",
* type="integer",
* description="每页显示记录数",
* ),
* @SWG\Property(
* property="page",
* type="integer",
* description="当前页数",
* ),
* ),
* @SWG\Property(
* property="lists",
* @SWG\Items(
* @SWG\Property(
* property="id",
* type="integer",
* description="id",
* ),
* @SWG\Property(
* property="source",
* type="string",
* description="数据来源",
* ),
* @SWG\Property(
* property="industry_no",
* type="integer",
* description="行业编号",
* ),
* @SWG\Property(
* property="channel_id",
* type="integer",
* description="渠道id",
* ),
* @SWG\Property(
* property="name",
* type="string",
* description="名称",
* ),
* )
* ),
* ),
* ),
* @SWG\Response(
* response=422,
* description="error",
* )
* )
*/
public function index(Request $request){
$channel_id=2;
$page = $request->input('page',1);
$pagesize = $request->input('pagesize',PAGE_SIZE);
$offset = ($page - 1) * $pagesize;
$condition = InfoPerson::where('channel_id',$channel_id)->orderBy('id', 'desc');
$total = $condition->count();
if (empty($total)) abort(422, '没有对应的数据');
$lists = $condition->offset($offset)->limit($pagesize)->get();
return [
'pages' => [
'totalnum' => $total,
'totalpage' => intval(ceil($total / $pagesize)),
'pagesize' => $pagesize,
'page' => $page,
],
'lists' => $lists
];
}
}

记得都要添加路由哦!至于post api有空再写...

Laravel5.5.x集成Swagger (L5-Swagger) 只讲Laravel5.5.x的集成,laravel其他版本请自行研究或参考github上的说明的更多相关文章

  1. 【Swagger】可能是目前最好的 Spring Boot 集成 swagger 的方案

    [Swagger]可能是目前最好的Spring Boot集成 swagger 的方案 ![](https://img2018.cnblogs.com/blog/746311/201909/746311 ...

  2. 分享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服务开发框架

    集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的微服务开发框架 Github源代码地址 htt ...

  3. 测试-Swagger:Swagger

    ylbtech-测试-Swagger:Swagger The Best APIs are Built with Swagger Tools. Swagger 是一款RESTFUL接口的文档在线自动生成 ...

  4. swagger & api & swagger ui

    swagger & api swagger ui # run server $ swagger project start api-app # call api $ curl http://1 ...

  5. 软件-集成开发环境:IDEA(Java 语言开发的集成环境)

    ylbtech-软件-集成开发环境:IDEA(Java 语言开发的集成环境) IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他开发语言),IntelliJ在业界 ...

  6. 第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中

    第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详 ...

  7. 第三百五十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—将selenium操作谷歌浏览器集成到scrapy中

    第三百五十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—将selenium操作谷歌浏览器集成到scrapy中 1.爬虫文件 dispatcher.connect()信号分发器,第一个参数信 ...

  8. 三十七 Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中

    Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详解 基本概念 如 ...

  9. L5 Swagger 使用说明

    网上看了看,关于这个扩展介绍很少.今天工作恰好用到,研究了一下,觉得有必要分享一下. 一.  简介: 这个包是Swagger-php和Swagger-ui的封装,适用于Laravel5. 二.版本要求 ...

随机推荐

  1. Java入门之JDK安装及环境变量配置

    一.安装JDK 安装过程中会出现两次安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中. (注:若无安装目录要求,可全默认设置.无需做任何 ...

  2. MySQL中报错: [Err] 1146 - Table 'performance_schema.session_status' doesn't exist 解决办法

    解决办法:1.打开cmd 执行命令cd/ 进入C盘根目录2.dir 查看C盘根目录下文件夹  找到 Program Files文件夹3.cd Program Files 进入该文件夹下 再输入dir ...

  3. Spring-cloud微服务 Eureka学习教程-分布式搭建EurekaServer、EurekaClient+Ribbon(中级)

    我们这里只有一台服务器,所以我们先仿集群搭建. 完整demo项目代码:https://github.com/wades2/EurekaDemo2 在这之前我们先分析分析Eureka相比其他注册中心的好 ...

  4. 【转】大数据批处理框架 Spring Batch全面解析

    如今微服务架构讨论的如火如荼.但在企业架构里除了大量的OLTP交易外,还存在海量的批处理交易.在诸如银行的金融机构中,每天有3-4万笔的批处理作业需要处理.针对OLTP,业界有大量的开源框架.优秀的架 ...

  5. C#开发短信的方法和简介(转)

    http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=6337(来自) 自己收藏哈子

  6. WebSocket Demo

    HTML 代码: <body> <h1>WebScoket示例</h1> <br /><br /> <input type=" ...

  7. OC跟Swift混编

    OC项目中使用Swift 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue  独立博客:http://mengxiangyue ...

  8. FinFET简介

    什么是FET? FET 的全名是“场效电晶体(Field Effect Transistor,FET)”,先从大家较耳熟能详的“MOS”来说明.MOS 的全名是“金属-氧化物-半导体场效电晶体(Met ...

  9. 百度web应用诉讼费计算器

    以前百度推开放平台的时候,利用jquery+jqueryUI做了一个诉讼费计算器,托管在BAE上.闲来无事,把代码和大家共享一下. 在百度搜索"诉讼费"相关的关键词就能看到:   ...

  10. 笨办法学Python(十三)

    习题 13: 参数.解包.变量 在这节练习中,我们将讲到另外一种将变量传递给脚本的方法(所谓脚本,就是你写的 .py 程序).你已经知道,如果要运行 ex13.py,只要在命令行运行 python e ...