# EcmsAPI **Repository Path**: twoir/ecmsapi ## Basic Information - **Project Name**: EcmsAPI - **Description**: 帝国7.5,8.0专用API接口。以对象开发,可定制入口,多个,实现自动加载(支持composer管理),代码更简洁,更方便快捷,帝国(7.2和7.5)选择分支ecms75,帝国8.0选择分支master(php大于等于8.1)。 - **Primary Language**: PHP - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: http://coach.twoir.com/ecms/api/ - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 4 - **Created**: 2021-09-19 - **Last Updated**: 2025-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: CMS, API, 帝国CMSAPI, TWOIR ## README # 帝国EcmsAPI接口 ## 帝国8.0 API概览 ### 插件特点如下: - 使用`php`自加载特性,或使用`composer`包管理工具,任选一种; - 采用面向对象开发(类文件编写),错误全部由异常处理接管,逻辑更简洁、更高效(代码高可用); - 统一入口,支持版本控制(/api/v1/),安全性更高,做到一次性安全过虑,如`v2`,`v3`,接口加密功能; - 自动联表处理,写sql语句时不用关心会员主、副表及模型表已审核/待审核/存档表位置等,支持批量处理插入数据(将在下一个版本可能会更新),更新、插入、删除优先级; - 内置基础功能如注册、登陆、退出、验证码、授权接口、公众号授权、小程序授权,`sitemap`生成(含`html`,`xml`,`txt`),`JWT`(不定期发布、更新); - 后台可以编辑`Controller`文件夹(接口权限控制)和`Model`文件夹(字段维护)及列表指定显示字段,出于安全可以选择关闭(暂时未上线); - 模型字段列表和详情显示控制,配制文件或后台设置; - 严格代写规范及版本控制; - 致力于完全独立的API接口(去除依赖帝国系统程序 -- 切换分支查看)。 ### 插件目录结构如下 ``` upload/ └── api/ ╌╌╌ └── v1/ (api入口) └── e/ ╌╌╌ └── extend/ ╌╌╌ ╌╌╌ └── twoir/ ╌╌╌ ╌╌╌ ╌╌╌ ├── src/ (核心目录) ╌╌╌ ╌╌╌ ╌╌╌ ╌╌╌ ├──ErrorHandler.php ╌╌╌ ╌╌╌ ╌╌╌ ╌╌╌ └──helper.php ╌╌╌ ╌╌╌ ╌╌╌ └── config/ ╌╌╌ ╌╌╌ ╌╌╌ ╌╌╌ └── ... ╌╌╌ ╌╌╌ ╌╌╌ autoload.php (自动加载) └── eadmin (后台目录) ``` 新站可以直接覆盖 ### 安装环境安要 - PHP8.2以上版本 - 帝国ecms 8.0 ### 安装教程 只需2步即时拥有高可用API #### 第一步,复制文件到指定位置 将`upload`目录下所有文件复制根目录,如果是新安装直接覆盖即可。 #### 第二步,安装自动加载功能 在`class`目录的`connect.php`文件中 加入以下代码 在10行左右(中间代码) ``` /** * 2021.09.01 自动载功能 * cighsen02 365182575 */ define('EXTEND_DIR', ECMS_PATH . 'e' . DIRECTORY_SEPARATOR . 'extend'); require_once EXTEND_DIR . DIRECTORY_SEPARATOR . 'twoir' . DIRECTORY_SEPARATOR . 'autoload.php'; ``` #### 第三步,后台接口管理菜单 在后台系统设置里<扩展菜单> -> <管理菜单>: ---- 暂时不开放,后续考虑增加 ### 常用接口地址 1. 列表接口 请求方法:GET ``` /api/v1/?classid={classid} /api/v1/?tablename={tablename} ``` 接口通用,无需每个模型写相应代码 2. 详情接口 请求方法:GET ``` /api/v1/?classid={classid}&id={id} /api/v1/?tablename={tablename}&id={id} ``` 接口通用,无需每个模型写相应代码 3. 注册接口 请求方法:POST 表单参数以实现为准 ``` /api/v1/?act=register ``` 4. 登陆接口 请求方法:POST 表单参数以实现为准 ``` /api/v1/?act=login ``` 5. 退出接口 请求方法:POST/GET ``` /api/v1/?act=logout ``` 6. 验证码接口 请求方法:GET 官方验证码 ``` /api/v1/?act=show_key&v=login ``` 回答问题验证码 ``` /api/v1/?act=show_key&v=login&style=2 ``` 返回base64, 这样可以减少一个请求数 [登陆验证码演示](http://v8.959602.com/e/member/login/) 7. 点击数统计接口 请求方法:GET ``` /api/v1/?act=click&classid={classid}&id={id} /api/v1/?act=click&tablename={tablename}&id={id} ``` 返回都为空,成功不成功,状态200,code为0 8. 公众号配置验证(回调地址) ``` /api/v1/ ``` 无需要参数 9. 检测字段是否存在 请求方法:GET ``` /api/v1/?act=is_field_exists&classid={classid}&id={id}&filed={filed}&value={value} /api/v1/?act=is_field_exists&tablename={tablename}&id={id}&filed={filed}&value={value} ``` filed字段名称可不传,默认title字段 ### 其它相关 1. 更多教程: http://coach.twoir.com/ecms/api/ 2. 帝国原版UI演示城市分站 [演示站](http://v8.959602.com/) 3. 省市区,带有周边城市功能演示城市分站`AllCity` [演示站](http://y.sj42.com/) 4. 高级筛选`AllInfo` [演示站](http://x.sj42.com/zuowen/c53/) ### QQ交流群 1. 206865209 ### 参与贡献 - 学习php代码最好机会,写出优质代码 1. 版本号说明:中间一位代表php版本系列,php7,则v1.7.x,v1.8.1适用php8.x版的 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request