找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 851|回复: 0

[接口开发] Discuz Api 接口【X3.5】二次开发 - 在线手册

[复制链接]
发表于 2024-4-7 18:44:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
接口二次开发

本功能由PHP+MYSQL语言开发,无缝对接新秀网络验证系统,采用独立入口文件、类文件、第三方类文件库进行调用开发。所有功能实现及控制均采用api接口操作,数据输出形式为JSON、XML两种常见形式,达到毫秒级数据快速交换功能。

1、接口开发是结合新秀网络验证系统进行的二次开发,不能独立使用;

2、接口开发遵循Discuz、新秀网络验证、PHP语言规范开发;

3、接口开发适用于新秀网络验证系统3.5ver1.3版本以后;

4、本功能与新秀网络验证系统、扩展框架系统,代码相互独立,但功能同时执行;

5、接口开发可使用Discuz内置函数、新秀网络验证内置函数、PHP函数。

适用环境:php版本>7.0、Mysql版本>5.5以上、Discuz版本>3.5。

= Discuz资料库  = Discuz插件开发文档  = 开发交流  =  BUG反馈  =  QQ客服:3188639  QQ交流群:281079920


接口开发常用函数

1、DB数据库操作函数    /*常用MYSQL数据库操作命令,增、减、改、查功能函数。*/

2、新秀网络验证数据库对照表    /*新秀网络验证系统内部,所有数据库表及说明*/

3、Discuz官方数据库对照表  /*Discuz官方数据库表,包括discuz、UCente数据库字典。*/

4、Discuz基础框架、类、函数    /*包含Discuz官方基础框架、类、函数、方法使用说明。*/

5、新秀网络基础框架类、函数    /*包含新秀网络验证基础框架、类、函数、方法使用说明。*/


二次接口开发示例

1、*


使 用 简 介

1、接口开发演示文件下载

dev接口开发模版.zip (3.2 KB, 下载次数: 63) 【UTF8】

2、接口开发演示文件目录说明

xinxiuvip_network \\新秀网络验证系统插件主目录

—lib \\自定义类存放目录 (用于开发者存放第三方类、自定义类,命名:lib_dev.php

—function \\自定义方法存放目录 (用于开发者存放自定义开发接口类和方法)

——function_dev.php \\自定义方法类开发文件 (自定义开发接口方法类)

—dev.inc.php \\自定义接口入口开发文件

3、如何安装、开发、调试?

#1、下载演示文件后,上传至新秀网络验证插件根目录。discuz论坛插件根目录 \source\plugin\xinxiuvip_network\

#2、使用PHP代码编辑软件,对入口文件 dev.inc.php 和 自定义方法类文件 function_dev.php 进行开发,注意:UTF8及GBK编码问题。

#3、如需新增接口文件,请根据演示文件,修改 “dev” 为您想要的文件名,但不能与新秀框架插件内文件名冲突,且开发的接口方法,不能与新秀框架冲突

#4、功能代码开发完成,组装调试接口:


[PHP] 纯文本查看 复制代码
//根据演示文件中组装url接口地址
demo35.xinxiuvip.com/plugin.php?id=xinxiuvip_network:dev&key=123456&action=dev_demo1&demo1=demo&demo2=demo

[PHP] 纯文本查看 复制代码
//根据演示文件中接口访问返回的结果
{
    "code": "200",
    "result": "OK",
    "count": 2,
    "data": {
        "demo1": "demo",
        "demo2": "demo"
    },
    "sqltime": "0.00131s"
}
dev.inc.php入口文件代码实例
[PHP] 纯文本查看 复制代码
<?php
/*
 创建时间 2024-04-06 21:33:55
 技术支持 QQ:3188639 微信号:xinxiuvip
 官方网站 [url=http://www.xinxiuvip.com/]http://www.xinxiuvip.com/[/url]
 获取授权 [url=http://www.xinxiuvip.com/plugin.php?id=xinxiuvip_license:accredit]http://www.xinxiuvip.com/plugin.php?id=xinxiuvip_license:accredit[/url]
 开发手册 [url=http://www.xinxiuvip.com/thread-529-1-1.html]http://www.xinxiuvip.com/thread-529-1-1.html[/url]
 严禁反编译、逆向等任何形式的侵权行为,违者将追究法律责任!
*/

#以下两行代码,用于开发环境下代码错误提示,可根据提示信息进行代码检查,无误后即可注释掉!
//ini_set("display_errors", "on");
//error_reporting(E_ALL);
#注释结束

#防止游客直接输入网址进行访问,权限检测,勿动!!!
if (! defined('IN_DISCUZ')) {
    exit('Access Denied');
}
#注释结束

#引入自定义开发类文件,此文件保存位置 'function/dev' 代表 function/function_dev.php 如需修改请按格式进行!
C::import('function/dev', 'plugin/xinxiuvip_network', false);

$api = new function_dev();//实例化function_dev.php类操作,实例化后可用$api->调用function_dev.php中的类方法!
#注释结束

#此处为入口文件,根据接口方法,调用对应类方法。
switch ($api->action) { //$api->action 获取入口方法,勿动!!!
    case 'dev_demo1': // 判断是否是此方法,如果是则进入下一步!
        $demo1 = xx_client::safe_check('demo1', true); //判断参数传输,params为参数名称,iscore为是否是必填项(true为必填,false为可空)
        $demo2 = xx_client::safe_check('demo2', false);//判断参数传输,params为参数名称,iscore为是否是必填项(true为必填,false为可空)
        $api->dev_demo1($demo1,$demo2);//调用function_dev.php实例化后类方法,根据类方法设置传入参数。
        break;
    #此处代码根据接口开发需求,可以无限添加循环。
    case 'dev_demo2':
        $demo1 = xx_client::safe_check('demo1', true);
        $demo2 = xx_client::safe_check('demo2', false);
        $api->dev_demo1($demo1,$demo2);
        break;
    #注释结束
    #此处代码是判断接口输入是否正确。勿删!!!
    default:
        xx_client::json_output(400,'error010');
        break;
    #注释结束
}
#注释结束

function_dev.php自定义方法类代码实例
[PHP] 纯文本查看 复制代码
<?php
/*
 创建时间 2024-04-06 21:33:55
 技术支持 QQ:3188639 微信号:xinxiuvip
 官方网站 [url=http://www.xinxiuvip.com/]http://www.xinxiuvip.com/[/url]
 获取授权 [url=http://www.xinxiuvip.com/plugin.php?id=xinxiuvip_license:accredit]http://www.xinxiuvip.com/plugin.php?id=xinxiuvip_license:accredit[/url]
 开发手册 [url=http://www.xinxiuvip.com/thread-529-1-1.html]http://www.xinxiuvip.com/thread-529-1-1.html[/url]
 严禁反编译、逆向等任何形式的侵权行为,违者将追究法律责任!
*/

#以下两行代码,用于开发环境下代码错误提示,可根据提示信息进行代码检查,无误后即可注释掉!
//ini_set("display_errors", "on");
//error_reporting(E_ALL);
#注释结束

#防止游客直接输入网址进行访问,权限检测,勿动!!!
if (! defined('IN_DISCUZ')) {
    exit('Access Denied');
}
#注释结束

#引入核心系统类,勿删!!!
C::import('class/client','plugin/xinxiuvip_network',false);
require_once DISCUZ_ROOT.'./config/config_ucenter.php';
require_once DISCUZ_ROOT.'./uc_client/client.php';
#注释结束

#如何引入自定义系统类?
#1、将自定义核心类、第三方核心类上传至extend文件夹下;
#2、通过 C::import 、 require_once 两种引入形式引入第三方核心类;
#3、在下方 public function dev_demo1($demo1,$demo2) 方法中实例化后使用 $new-> 进行调用。
#注释结束


class function_dev extends class_client
{
    public $action_all = array('dev_demo1');//所有接口必填,用逗号隔开!!!除以下key、adminkey所包含以外,未包含的接口都是通过token令牌进行访问。
    public $function_action_key = array('dev_demo1');//使用key密钥访问的接口
    public $function_action_adminkey = array();//使用管理密钥adminkey访问的接口
        public $config;//可自定义变量,在构造方法中设置变量值。
    /**
     * 构造方法 __construct() 是在实例化对象时被自动调用
     * 用途:可以用于初始化程序(可以给成员属性赋值,也可以调用成员方法)
     */
    public function __construct(){
        parent::__construct();
        $this->config = xx_G::xinxiuvip_network();//获取新秀网络插件配置信息
    }


    #此处为标准类方法,可根据DISCUZ、新秀网络验证内置函数进行调用,也可使用PHP官方函数进行操作。
    public function dev_demo1($demo1,$demo2){
        #-具体DISCUZ内置函数、新秀网络验证内置函数、PHP函数,论坛相应帖子有专门介绍。
        $data = array( //组合数组
            'demo1' => $demo1,
            'demo2' => $demo2
        );
        xx_client::json_output('200','',$data); // 新秀内置打印函数,打印结果,并结束程序。
        #-具体DISCUZ内置函数、新秀网络验证内置函数、PHP函数,论坛相应帖子有专门介绍。
    }
    #注释结束

    /**
     * 析构方法 __destruct() 是在对象被销毁时自动调用
     * 用途:可以进行资源的释放操作或文件的关闭操作或信息保存操作
     */
    public function __destruct(){
    }

}

将接口添加到接口管理数据库代码实例

[SQL] 纯文本查看 复制代码
INSERT INTO `pre_xinxiuvip_network_actions` (`id`, `type`, `typekey`, `groups`, `name`, `actions`, `status`, `islogs`, `snum`, `hnum`, `dnum`, `nums`, `zjf`, `kjf`, `do`, `ips`, `url`, `ziduan`, `remarks`, `moment`) VALUES (NULL, '测试模块', NULL, '', '测试名称', 'dev_demo1', '0', '0', '0', '0', '0', '0', NULL, NULL, '0', '', 'http://www.xinxiuvip.com/forum.php?mod=viewthread&tid=573', '', '', '');

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|新秀网络验证系统API ( 豫ICP备2021033257号-1 )

GMT+8, 2024-7-22 09:21 , Processed in 0.223285 second(s), 45 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表