zoukankan      html  css  js  c++  java
  • 如何写UCHOME移动接口

    基础

    • 接口采用RESTful的形式封装,但切记RESTful只是一种风格。
    • 你可能需要了解,如何通过PHP返回JSON数据。请参考这里1这里2
    • 本文档描述针对UCHOME的移动接口开发,所以,你还需要了解UCHOME的二次开发。请参考这里

    原理

    把原有要在页面显示的内容根据移动端需要修改成返回相应的JSON。UCHOME是一个严格遵循MVC的框架。所以在编写移动 端API时,我们仅需要把View部分根据移动端需要转为返回JSON。

    通过分析在UCHOME主要产生View的部分有:

    • 通过showmessage语句产生

    • 通过include template语句产生

    为了简化操作,封装两个函数(见function_capi.php,它相当于function_common.php):

    • capi_mkjson是基础函数,用于产生json输出,一般不直接调用

    • capi_showmessage_by_data用于产生规范的json输入。相关输入参数说明:

      1. msgkey, 代表UCHOME的消息编码,例如DO_SUCCESS,定义在language文件夹

      2. code, 代表操作是否正确返回结果,code=1代表出错, data代表要返回的数据,可以是变量 或是数组。具体例子可以参见capi/source文件夹中任何一个文件

    源代码如下:

    function capi_mkjson($response='', $callback=''){
    
        global $_SGLOBAL;
        $response = empty($response)?$_SGLOBAL['mresponse']:$response;
        if ($callback){
            header('Cache-Control: no-cache, must-revalidate');
            header('Content-Type: text/javascript;charset=utf-8');
            echo $callback.'('.json_encode($response).');';
        }else{
            // application/x-json will make error in iphone, so I use the text/json
            // instead of the orign mine type
            header('Cache-Control: no-cache, must-revalidate');
            header('Content-Type: text/json;');
    
            echo json_encode($response);
    
        }
        exit();
    }
    function capi_showmessage_by_data($msgkey, $code=1, $data=array()){
        obclean();
    
        //去掉广告
        $_SGLOBAL['ad'] = array();
    
        //语言
        include_once(S_ROOT.'./language/lang_showmessage.php');
        if(isset($_SGLOBAL['msglang'][$msgkey])) {
            $message = lang_replace($_SGLOBAL['msglang'][$msgkey], $values);
        } else {
            $message = $msgkey;
        }
        $r = array();
        $r['code'] = $code;
        $r['data'] = $data;
        $r['msg'] = $message;
        $r['action'] = $msgkey;
        capi_mkjson($r, $_REQUEST['callback'] );
    }

    编写接口

    • 根据需要,找到相关UCHOME文件
    • 根据UCHOME文件夹结构,复制文件至capi文件夹,例如 源文件 source/space_blog.php, 复制至capi/source/space_blog.php
    • 查找替换,把 $_GET 和 $_POST 替换成 $_REQUEST
    • 查找替换,把showmessage 替换成 capi_showmessage_by_data
    • 查找替换, 把submitcheck 替换成 capi_submitcheck
    • 查找替换,把 mkfeed 替换成 capi_mkfeed
    • 查找替换,把 avatar 替换成 capi_avatar
    • 若移动端需要返回实名,请调用capi_realname($uid)
    • 查找替换,把include template 语句 替换成capi_showmessage_by_data('DO_SUCCESS', 0, result);。 其中 result代表要返回给移动端的结果集
    • 测试, 编写接口文档。 推荐使用POSTMAN进行测试

    编码风格

    • 修改的函数,在原uchome函数前加capi
    • 一般不允许直接修改原uchome函数,通过复制增加函数(放置function_capi.php)
  • 相关阅读:
    maven pom
    Amazon(vpc)对等网络
    AWS IAM用户启用MFA
    AWS系列-EC2实例镜像选择
    AWS系列-EC2实例添加磁盘
    AWS系列-AWS EC2实例类型改配(机器配置升级)
    AWS必要了解知识
    AWS系列-EC2默认限制说明
    AWS系列-S3实现文件服务页面展示
    AWS 区域与可用区
  • 原文地址:https://www.cnblogs.com/beceo/p/2749595.html
Copyright © 2011-2022 走看看