• 技术文章 >后端开发 >PHP问题

    PHP后端接口怎么写

    王林王林2019-09-27 11:58:00原创4571

    php入门到就业线上直播课:进入学习

    php后台接口的实现方法

    1. 首先,要设置一个入口文件

    入口文件的话会引入到固定的api文件(如下):

    <?php
    define("APPAPI_ALLOW_REQUEST_LOGIN", 'Y');  
    //是否允许传用户名密码参数的形式登录。如为Y则参数用户名密码参数和basic方式都可以,如为N就只能basic方式。
    //define("SITE_TEMPLATE_PATH", '/local/templates/mobile_app_api');    
    //如不定义,默认是local/templates/bitrix24。可以考虑将/local/templates/mobile_app留给h5前端展示用。
    新开/local/templates/mobile_app_api给api用。如不指定SITE_TEMPLATE_PATH直接IncludeComponent,则对组件代码进行debug时,
    会出现web端头部页面。
    //require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php');  //需要模板页面
    Header('Access-Control-Allow-Origin: *');
    Header('Access-Control-Allow-Headers: origin, content-type, accept');
    Header('X-Content-Type-Options: nosniff');
    require("remote_auth.php");
    //app方式每次请求session_id()都会变,导致挂钩在session_id()下面的所有session信息如fix_session_id也都不认。
    所以登录完毕后要拿到session_id(),并在后续接口一起传给接口,接口再去指定session_id。
    //$_REQUEST['org_sessid']='06q75330o31se1cf4d7vl1bdm4';
    if(!empty($_REQUEST['org_sessid'])){
        $org_session_id=$_REQUEST['org_sessid'];
        session_id($org_session_id);
        session_start();
        //echo session_id();
        //echo "<pre>";print_r($_SESSION);exit;
    }
    require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");   //无需模板页面
    $APPLICATION->IncludeComponent("vdg:mobile.data", "", Array());
    exit;
    ?>

    2. 其次,在引入的组件的component.php中获取参数,确定模板的使用

    <?php
    ...
    include_once(dirname(__FILE__) . "/functions.php");//引入类的方法的文件
    ...
    if ($_REQUEST["mobile_action"])//Executing some action
    {
        $APPLICATION->RestartBuffer();
        $action = $_REQUEST["mobile_action"];
        //CRestUtil::sendHeaders();  //跨域header
        $actionList = new Bitrix\Mobile\Action();
        $actionList->executeAction($action, $arParams);
    
        CMain::FinalActions();
        die();
    }
    elseif ($_REQUEST["captcha_sid"])//getting captcha image  通过 /vdg/app_api.php?captcha_sid=1 可以得到图形验证码。
    {
        $APPLICATION->RestartBuffer();
        $actionList = new Bitrix\Mobile\Action();
        $actionList->executeAction("get_captcha", $arParams);
        die();
    }
    elseif ($_REQUEST["manifest_id"])//getting content of appcache manifest
    {
        include($_SERVER["DOCUMENT_ROOT"] .\Bitrix\Main\Data\AppCacheManifest::MANIFEST_CHECK_FILE);
        die();
    }
    elseif(!$USER->IsAuthorized() || !$isSessidValid)
    {
        $APPLICATION->RestartBuffer();
        header("HTTP/1.0 401 Not Authorized");
        if(Bitrix\MobileApp\Mobile::getInstance()->getInstance() != "android")
        {
            //header("Content-Type: application/x-javascript");
            header("Content-Type: application/json");
            header("BX-Authorize: ".bitrix_sessid());
        }
    
        jsonError('201', '请先登陆');   
        //echo json_encode(Array("status" => "failed", "bitrix_sessid"=>bitrix_sessid()));
        die();
    }
    ?>

    3.在具体的模板中运用类的方法根据参数获取相应的数据,并返回客户端结果

    如果成果返回“ jsonSuccess(questions);”如果失败返回“jsonError(′201′,questions);”

    如果失败返回“jsonError(′201′,questRes[“ERROR”]);”或其他错误讯息。

    推荐教程:PHP视频教程

    以上就是PHP后端接口怎么写的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php 后端 接口
    上一篇:php后端和java后端区别 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• php为什么要写接口• php接口加密怎么做• php接口有什么用• php开发接口要注意什么
    1/1

    PHP中文网