当前位置: 首页 > 软件库 > Web应用开发 > 网站API >

real-apidoc

基于 tp6 的 api 生成模块
授权协议 BSD
开发语言 PHP
所属分类 Web应用开发、 网站API
软件类型 开源软件
地区 国产
投 递 者 周飞语
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

基于 tp6 的 api 生成模块,参考 fastadmin 的 api 模块

引用

下载到 tp6 的extend\jmwl下

use  jmwl\realapidoc\Builder;
use  think\facade\View;

使用

这里是所有的需要生成api的控制器路径啦、所以,你可以先获取到模块下的所有控制器 Builder(["\app\admin\controller\Demo","\app\admin\controller\Index"])

  $title="类名";
        $url="http://real-think.jmwl51.com";
        $lang=[
            'Info'             => '基础信息',
            'Sandbox'          => '在线测试',
            'Sampleoutput'     => '返回示例',
            'Headers'          => 'Headers',
            'Parameters'       => '参数',
            'Body'             => '正文',
            'Name'             => '名称',
            'Type'             => '类型',
            'Required'         => '必选',
            'Description'      => '描述',
            'Send'             => '提交',
            'Reset'            => '重置',
            'Tokentips'        => 'Token在会员注册或登录后都会返回,WEB端同时存在于Cookie中',
            'Apiurltips'       => 'API接口URL',
            'Savetips'         => '点击保存后Token和Api url都将保存在本地Localstorage中',
            'Authorization'    => '权限',
            'NeedLogin'        => '登录',
            'NeedRight'        => '鉴权',
            'ReturnHeaders'    => '响应头',
            'ReturnParameters' => '返回参数',
            'Response'         => '响应输出',
        ];
        $config = [
            'sitename'    => "测试",
            'title'       => $title,
            'author'      => "测试",
            'description' => '',
            'apiurl'      => $url,
            'language'    => $lang,
        ];
        //这里是所有的需要生成api的控制器路径啦
        $builder = new Builder(["\\app\\admin\\controller\\Demo","\\app\\admin\\controller\\Index"]);
        $content = $builder->render(root_path()."/extend/jmwl/realapidoc/template/index.html", ['config' => $config, 'lang' => $lang]);
        // dump($content); die;
     
        View::assign('config',$config);
        View::assign('docslist',$content["docsList"]);
        View::assign('lang',$content["lang"]);
       return View();

视图

文件中的index.html就是视图啦,放到正确的位置 我放在了 app\admin\view\api\index.html 对应的控制器自然是 admin下的api控制器啦

控制器注释

名称 描述 示例
@ApiSector API分组名称 (测试分组)
@ApiRoute API接口URL,此@ApiRoute只是基础URL (/api/test)
@ApiInternal 忽略的控制器,表示此控制将不加入API文档
@ApiWeigh API方法的排序,值越大越靠前 (99)

控制器方法注释

名称 描述 示例
@ApiTitle API接口的标题,为空时将自动匹配注释的文本信息 (测试标题)
@ApiSummary API接口描述 (测试描述)
@ApiRoute API接口地址,为空时将自动计算请求地址 (/api/test/index)
@ApiMethod API接口请求方法,默认为GET (POST)
@ApiSector API分组,默认按钮控制器或控制器的@ApiSector进行分组 (测试分组)
@ApiParams API请求参数,如果在@ApiRoute中有对应的{@参数名},将进行替换 (name="id", type="integer", required=true, description="会员ID")
@ApiHeaders API请求传递的Headers信息 (name=token, type=string, required=true, description="请求的Token")
@ApiReturn API返回的结果示例 ({"code":1,"msg":"返回成功"})
@ApiReturnParams API返回的结果参数介绍 (name="code", type="integer", required=true, sample="0")
@ApiReturnHeaders API返回的Headers信息 (name="token", type="integer", required=true, sample="123456")
@ApiInternal 忽略的方法,表示此方法将不加入文档
@ApiWeigh API方法的排序,值越大越靠前 (99)

示范

<?php

namespace app\api\controller;

/**
 * 测试API控制器
 */
class Test extends \app\common\controller\Api
{

    // 无需验证登录的方法
    protected $noNeedLogin = ['test'];
    // 无需要判断权限规则的方法
    protected $noNeedRight = ['*'];

    /**
     * 首页
     *
     * 可以通过@ApiInternal忽略请求的方法
     * @ApiInternal
     */
    public function index()
    {
        return 'index';
    }

    /**
     * 私有方法
     * 私有的方法将不会出现在文档列表
     */
    private function privatetest()
    {
        return 'private';
    }

    /**
     * 测试方法
     *
     * @ApiTitle    (测试名称)
     * @ApiSummary  (测试描述信息)
     * @ApiSector   (测试分组)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/test/test/id/{id}/name/{name})
     * @ApiHeaders  (name=token, type=string, required=true, description="请求的Token")
     * @ApiParams   (name="id", type="integer", required=true, description="会员ID")
     * @ApiParams   (name="name", type="string", required=true, description="用户名")
     * @ApiParams   (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturnParams   (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
     * @ApiReturn   ({
        'code':'1',
        'mesg':'返回成功'
     * })
     */
    public function test($id = '', $name = '')
    {
        $this->success("返回成功", $this->request->request());
    }

}
  • 基础介绍 基于tp6的api生成模块,参考fastadmin的api模块 下载链接 引用 下载到tp6的extend\jmwl下 use jmwl\realapidoc\Builder; use think\facade\View; 使用 这里是所有的需要生成api的控制器路径啦、所以,你可以先获取到模块下的所有控制器 Builder(["\app\admin\controller\Demo

  • Apidoc简介 apidoc是一款可以根据源代码中的注释直接自动生成api接口文档的工具。生成一个doc文件夹,包含了渲染的css,fonts等, python中注释的方法为 """   @apidoc   """ 安装及应用 安装前,需要先更新到最新的node.js,  使用npm执行命令: npm install apidoc -g 安装好后,在要生成接口文档的源码根目录下, 建立一个配置

 相关资料
  • 我的要求是这样的。 点击第一个API获得响应。在响应中,我有一个字段定义状态,如果设置了该标志,则进行另一个API调用并与第一个结果合并。 如果未设置该标志,则返回实际响应(第一个响应)。 我们如何使用RxJava、FlatMap和Filter来实现这一点呢?

  • 我使用的是Swashbuckle(5.3.2),它生成了一个很好的API文档。 PetController CarController WebApiConfig null 获取/api/pets post/api/pets 获取/api/pets/{id} carowner_api_key: 汽车 get/api/cars 邮政/API/CARS get/api/cars/{id} null nu

  • 我是JavaFx的新手,我正在使用Intellij和SceneBuilder。我创建了一个MVC模型: PersonOverview和RootLayout由SceneBuilder生成。 个人概述:

  • 当我使用Spring framework时,我经常看到2个术语基于Java和基于注释的配置/自动生成。 如果它们不一样,你能告诉我它们之间有什么不同吗?

  • 如何生成版本1(基于时间的)UUID?是否有一个单独的库,或者它是如何在Java7 API中提供的,我错过了它。

  • 我有一个多模块的弹簧引导项目。我想知道如何设置集成测试来测试Spring数据JPA存储库?以下方法失败,但有此异常:HV000183:无法加载'javax.el.ExpressionFactory'。检查是否在类路径上有EL依赖项。 由于该模块不依赖于web模块,因此没有可以启动的web应用程序。