Coder Social home page Coder Social logo

hgthecode / thinkphp-apidoc Goto Github PK

View Code? Open in Web Editor NEW
133.0 2.0 26.0 12.88 MB

ThinkPHP 注释自动生成API文档,在线调试,代码生成器,Markdown文档

Home Page: https://hgthecode.github.io/thinkphp-apidoc/

License: MIT License

PHP 100.00%

thinkphp-apidoc's Introduction

注意、注意、注意!!!

本项目已迁移至 https://github.com/HGthecode/apidoc-php ,全新Apidoc兼容ThinkPHP、Laravel、Hyperf、Webman等基于Composer的PHP框架,更多实用功能。本项目不再维护,请移步新项目。

ThinkPHP ApiDoc

基于 ThinkPHP 的API接口开发工具

🤷‍♀️ Apidoc是什么?

如今,前后端分离的开发模式以必不可少,基于ThinkPHP可以很方便的作为Api接口的开发。可是一个Api开发过程中需要快速调试,开发完成后需要给其它开发者对接等,这时一个功能全面的Api文档工具,就显得特别重要。

大多数开发者可能都是通过各种工具配合来达到这一目的,其各种工具的安装和配置也是繁琐。甚至还有通过word等文本工具手写api文档的,这样的开发效率与可维护性是非常差的。

综合种种Api开发中的痛点,我们专为ThinkPHP开发了Apidoc的扩展,本插件可通过简单的注解即可生成Api文档,及帮助开发者提高生产效率的在线调试、快速生成Crud、一键生成整个模块Api等,涵盖Api开发方方面面。

✨特性

  • 开箱即用:无繁杂的配置、安装后按文档编写注释即可自动生成API文档。
  • 在线调试:在线文档可直接调试,支持全局参数、Mock调试数据、事件执行,接口调试省时省力。
  • 轻松使用:支持公共注释定义、业务逻辑层、数据表字段等引用,几句注释即可完成。
  • 安全高效:支持访问密码验证、应用/版本独立密码;支持文档缓存。
  • 多应用/多版本:可适应各种单应用、多应用、多版本的项目的Api管理。
  • Markdown文档:支持.md文件的文档展示。
  • 控制器分组:支持控制器多级分组,更精细化管理接口目录。
  • 多语言:可结合TP多语言能力,实现接口文档的语言切换。

📌兼容

ThinkPHP 5.1

ThinkPHP 6.x

📖使用文档

ThinkPHP ApiDoc V3.x文档

🏆支持我们

如果本项目对您有所帮助,请点个Star支持我们

💡鸣谢

ThinkPHP

doctrine/annotations

🔗链接

ApiDoc UI

ApiDoc Demo

thinkphp-apidoc's People

Contributors

hgthecode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

thinkphp-apidoc's Issues

在linux服务器下找不到控制器

Class "Banner" does not exist
code: -1
file: "/~~~~~~vendor/hg/apidoc/src/ParseAnnotation.php"
line: 28
message: "Class "Banner" does not exist"
name: "ReflectionException"

在调试时,调试路径多了一个目录,如何配置?

API接口地址: /shop/user.User/getChildren
访问时的路径: host/index.php/shop/shop/user.User/getChildren
正确的地址: host/index.php/shop/user.User/getChildren

这里多了一个 shop
请问如何配置
apidoc.php中的apps如下配置
[ 'title' => 'shop端', 'path' => 'app\shop\controller', 'folder' => 'shop', 'groups' => [ ['title' => '基础模块', 'name' => 'base'], ['title' => '功能模块', 'name' => 'function'], ], ]

前端 config.js
HOSTS: [ { title: "shop", host: "http://test.com" }, ],

配置无API 列表,多级目录

文件目录:

application
    maintain
        home
            api
               User.php

配置文件:config/apidoc.php
apps 配置
'apps' => [
['title'=>'API 接口','path'=>'app\maintain\home\api','folder'=>'api'],
]

User.php 命名空间:app\maintain\home\api;

User.php 内容:

/**
 * @Apidoc\Title("基础的注释方法")
 * @Apidoc\Desc("最基础的接口注释写法")
 * @Apidoc\Method("GET")
 * @Apidoc\Author("HG-CODE")
 * @Apidoc\Tag("测试")
 * @Apidoc\Param("username", type="abc",require=true, desc="用户名")
 * @Apidoc\Param("password", type="string",require=true, desc="密码")
 * @Apidoc\Param("phone", type="string",require=true, desc="手机号")
 * @Apidoc\Param("sex", type="int",default="1",desc="性别" )
 * @Apidoc\Returned("id", type="int", desc="用户id")
 */

public function login()
{}

api 请求地址: http:// host /maintain/api.user/login

请问如何配置,目前配置没有API列表

接口不支持分组?

接口层分组不起作用?另外DELETE请求 样式有点问题。描述文字被遮住了。

找了很久没找到联系方式

阅读了您写的,使用Github Actions 实现TP6自动化部署,收益匪浅,准备把项目的部署方式改为 actions。

但是运行到
image

这里报错了,请问具体原因是什么导致的呢?

Url自动生成优化建议

多应用模式下自动生成的url总是会附带app字符,导致访问地址不正确,建议增加个配置,可以去掉自动附带app。
例如 host/nm/comm/index.php 自动生成的url为 host/app/nm/comm/index.php
在实际开发中,基本上url都是不需要重新定义的,期望自动生成时也能正确。

多级控制器bug修复代码

protected function autoCreateUrl($method): string
{
    $isAuto = Config::get('controller_auto_search')||in_array('controller_auto_search',$this->config);
    $pathArr = [];
    if ($isAuto){
        $pathArr = explode("\\", $method->class );
    }else{
        $searchString = $this->controller_layer . '\\';
        $substr = substr(strstr($method->class, $searchString), strlen($searchString));
        $pathArr = explode("\\", str_replace($substr, str_replace('\\', '.', $substr), $method->class));
    }
    // 控制器地址
    $filterPathNames = array("app", $this->controller_layer);
    $classPathArr = [];
    foreach ($pathArr as $item) {
        if (!in_array($item, $filterPathNames)) {
            $classPathArr[] = $item;
        }
    }

    $classPath = implode('/', $classPathArr);

    return '/' . strtolower($classPath) . '/' . $method->name;
}

同一个控制器下,进行方法分类

如题,有时候同一个模块功能,方法都写在同一个控制器里,可是该模块下,有多个子模块,想要进行继续分组, ,好像除了新建多一个控制器之外,没办法实现了,.有一些旧的控制器,想要补充注释 ,新增加文档,变得很难,,因为已经写在一个控制器里面了,除非要前后端改动,,,获取新方法

集成后报错

我用的TP6,入口文件在项目根目录,不在public下。按照文档安装配置apidoc后一直报错:控制器不存在:app\controller\Config
按照常见问题里提供的方法配置之后也还是报这个错。
我分别尝试把前端页面apidoc目录放在项目根目录下、放到public目录下都报上述错误。
该如何处理呢?

怎么没token方式效验

看见访问api目前只是密码效验,这个固定的密码不安全吧,抓包一下获取就完了,应该用token效验,

关于tp6路由注解导致路径自动解析问题

我使用tp6的注解路由分组 @group后,下面方法@Api\Url里填的路径,一到文档前端就会自动加上Group的名字,在我业务的多应用模式下老是导致路径问题,请问有什么办法忽略掉某些注释嘛

多应用多版本应用名称为下划线 会存在问题。

如题,ooxx_aaa_vvv
[ 'title'=>'xxxxx子系统', 'folder'=>'ooxx_aaa_vvv', 'items'=>[ ['title'=>'V1.0','path'=>'app\ooxx_aaa_vvv\controller\v1','folder'=>'v1'], ['title'=>'V2.0','path'=>'app\ooxx_aaa_vvv\controller\v2','folder'=>'v2'] ] ],
版本切换时会有问题 读不到配置

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.