
How to implement the php backend interface
1. First, set up an entry file
The entry file will be imported into the fixed api file (as shown below):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php
define( "APPAPI_ALLOW_REQUEST_LOGIN" , 'Y');
新开/local/templates/mobile_app_api给api用。如不指定SITE_TEMPLATE_PATH直接IncludeComponent,则对组件代码进行debug时,
会出现web端头部页面。
Header('Access-Control-Allow-Origin: *');
Header('Access-Control-Allow-Headers: origin, content-type, accept');
Header('X-Content-Type-Options: nosniff');
require ( "remote_auth.php" );
所以登录完毕后要拿到session_id(),并在后续接口一起传给接口,接口再去指定session_id。
if (! empty ( $_REQUEST ['org_sessid'])){
$org_session_id = $_REQUEST ['org_sessid'];
session_id( $org_session_id );
session_start();
}
require_once ( $_SERVER [ "DOCUMENT_ROOT" ] . "/bitrix/modules/main/include/prolog_before.php" );
$APPLICATION ->IncludeComponent( "vdg:mobile.data" , "" , Array());
exit ;
?>
|
Copy after login
2. Secondly, obtain the parameters in component.php of the imported component and determine the use of the template
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <?php
...
include_once (dirname( __FILE__ ) . "/functions.php" );
...
if ( $_REQUEST [ "mobile_action" ])
{
$APPLICATION ->RestartBuffer();
$action = $_REQUEST [ "mobile_action" ];
$actionList = new Bitrix\Mobile\Action();
$actionList ->executeAction( $action , $arParams );
CMain::FinalActions();
die ();
}
elseif ( $_REQUEST [ "captcha_sid" ])
{
$APPLICATION ->RestartBuffer();
$actionList = new Bitrix\Mobile\Action();
$actionList ->executeAction( "get_captcha" , $arParams );
die ();
}
elseif ( $_REQUEST [ "manifest_id" ])
{
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/json" );
header( "BX-Authorize: " .bitrix_sessid());
}
jsonError('201', '请先登陆');
die ();
}
?>
|
Copy after login
3. Use the class method in the specific template to obtain the corresponding data according to the parameters and return the client result
If the result returns "jsonSuccess(questions);" If it fails, it returns "jsonError(′201′,questions);"
If it fails, return "jsonError('201′,questRes["ERROR"]);" or other error message.
Recommended tutorial: PHP video tutorial
The above is the detailed content of How to write PHP backend interface. For more information, please follow other related articles on the PHP Chinese website!