>  기사  >  백엔드 개발  >  PHP 백엔드 인터페이스를 작성하는 방법

PHP 백엔드 인터페이스를 작성하는 방법

王林
王林원래의
2019-09-27 11:58:007059검색

PHP 백엔드 인터페이스를 작성하는 방법

PHP 백엔드 인터페이스 구현 방법

1. 먼저 항목 파일을 설정해야 합니다.

항목 파일은 다음과 같이 고정된 API 파일에 도입됩니다.

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