Thinkphp6,注解注释生成api列表

简介: Thinkphp6,注解注释生成api列表

自己写的一个小功能需要用到,稍微存一下该段代码, 接口代码需要写的格式


wp_editor_md_9597b279b4f9cf9a7838ef38b4586077.jpg


// 遍历controller目录下的文件,判断注释中是否包含@Siam-Api
$dir = app_path()."/controller/";
$dir_contain = scandir($dir);
unset($dir_contain[0]);
unset($dir_contain[1]);// . 和 ..
$doc_list = [];
foreach ($dir_contain as $child_path){
    $path = $dir.$child_path . "/";
    // 只遍历控制器目录下的文件 不遍历子目录 可以自行改造
    if (is_dir($dir.$child_path)) continue;
    $file_list = glob($path. '*.php');
    foreach ($file_list as $file_path){
        $className = basename($file_path);
        $className = str_replace(".php", "",$className);
        $namespace = app()->getNamespace()."\\controller\\".$className;
        $class_reflec = new ReflectionClass($namespace);
        $method_list = $class_reflec->getMethods();
        foreach ($method_list as $method_reflec){
            // 包含@Siam-Api才需要解析源码
            $method_doc = $method_reflec->getDocComment();
            if (strpos( $method_doc,"@Siam-Api") == false) continue;
            $method_code = FileHelper::get_file_content_by_line($file_path, $method_reflec->getStartLine(), $method_reflec->getEndLine());
            // 参数解析逻辑,可以通过代码解析,也可以自己在注释里声明  然后解析 逻辑跟@Siam-Api这个字段一致
            // 解析源码里是否有validate  没有则是无参数
            if (strpos($method_code, "validate([") === false) {
                $param = [];
            }else{
                $param = [];
                // 解析参数列表
                $pattern_1 = '/\$this->validate\(([\s\S]*?)\);/';
                preg_match($pattern_1, $method_code, $matches);
                if (!isset($matches[1])) continue;
                // 拿到validate的代码,按行解析
                $param_code = explode("\n", $matches[1]);
                foreach ($param_code as $param_code_one){
                    if (strpos($param_code_one, "=>") === false) continue;
                    $param_code_one = str_replace(" ", "", $param_code_one);
                    // 正则匹配取出 字段名、规则、注释
                    $param_field_pattern = '/\'([\s\S]*?)\'=>\'([\s\S]*?)\'([\s\S]*)/';
                    preg_match($param_field_pattern, $param_code_one, $matches_param_field);
                    $param_field_note = str_replace(",", "", $matches_param_field[3]);
                    $param_field_note = str_replace("//", "", $param_field_note);
                    $param[] = [
                        $matches_param_field[1],// 字段名
                        $matches_param_field[2],// 规则
                        $param_field_note,// 注释
                    ];
                }
            }
            // groupName method_path method_dec逻辑自行扩展
            $doc_list['groupName'][] = [
                'method_name' => $method_reflec->getName(),
                'method_path' => '',
                'method_dec'  => '',
                'param'       => $param
            ];
        }
    }
}
// 应该返回成json等格式,然后前段html接入
var_dump($doc_list);


目录
相关文章
|
6月前
|
JSON 安全 API
亚马逊商品列表API秘籍!轻松获取商品列表数据
亚马逊商品列表API(SP-API)提供标准化接口,支持通过关键词、分类、价格等条件搜索商品,获取ASIN、价格、销量等信息。采用OAuth 2.0认证与AWS签名,保障安全。数据以JSON格式传输,便于开发者批量获取与分析。
|
6月前
|
数据采集 JSON API
微店API使用指南:高效获取商品列表数据
本文介绍如何使用Python爬虫调用微店item_search接口,根据关键词搜索商品并获取商品列表数据,涵盖请求方式、JSON数据解析、分页参数设置及筛选排序功能,适用于电商数据分析与竞品研究。
|
7月前
|
监控 算法 API
1688商品列表API数据解析
1688商品列表API支持通过关键词、价格、类目筛选商品,适用于电商分析与竞品监控,提供分钟级更新与高并发能力。支持批量获取商品信息、分页查询,附Python调用示例及完整错误处理逻辑。
|
8月前
|
JSON API 数据格式
小红书商品列表API数据解析(附代码)
本内容介绍了小红书商品列表API的用途及调用方式,适用于电商分析与市场研究。接口支持HTTP GET请求,返回JSON格式商品信息,包含标题、价格、销量、商家名称等字段。文中提供了基于Python的完整请求示例,使用requests库实现,并包含请求头设置和参数传递方式,便于开发者快速集成与测试。
|
8月前
|
JSON Unix API
1688查询榜单列表API详解
1688榜单API提供实时热销、新品等商品榜单数据,支持20+品类及40+字段筛选,适用于选品与市场分析。每小时更新,响应迅速。提供Python调用示例,开发者可快速集成。
|
7月前
|
JSON 监控 API
京东商品数据获取新姿势:商品列表API参数全解析
京东商品列表API是京东开放平台的核心接口,支持开发者高效获取商品名称、价格、销量等信息,适用于电商分析、价格监控等场景。提供关键词搜索、分类筛选、价格区间、排序及分页功能,支持HTTPS请求,数据实时更新,单次可查询最多200个SKU,助力电商应用开发。
|
8月前
|
JSON API 数据格式
微店商品列表API开发指南
微店商品列表API是微店开放平台的核心接口,支持开发者高效获取商品信息,适用于电商分析、展示平台搭建等场景。接口支持分页、排序及搜索功能,返回JSON格式数据,含商品ID、名称、价格、库存等字段。提供Python请求示例,便于快速集成调用。
|
8月前
|
JSON API 数据格式
1688店铺订单列表订单详情订单物流API响应数据解析
1688平台作为阿里巴巴旗下的B2B电商利器,提供高效订单管理API,支持订单查询、状态变更与物流同步,助力企业提升运营效率。本文附Python请求示例代码,实现便捷对接与数据获取。
|
8月前
|
JSON 监控 API
京东商品列表API秘籍!轻松获取商品列表数据
京东商品列表API是京东开放平台的核心接口,支持通过编程获取商品数据,适用于电商分析、价格监控等场景。提供关键词搜索、分类筛选、价格区间、排序及分页功能,采用HTTPS请求,返回JSON数据,具备高并发稳定性。附Python请求示例,便于快速集成调用。
|
8月前
|
JSON 监控 API
抖音视频列表API秘籍!轻松获取视频列表数据
抖音视频列表API是抖音开放平台提供的核心接口,支持按关键词、分类、排序方式筛选视频,适用于内容推荐、趋势分析等场景。接口返回含视频ID、标题、播放量等50+字段,支持分页获取,通过HTTP GET请求调用,返回JSON格式数据,便于开发者快速集成与处理。需注册平台账号获取访问权限。
1655 56