最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

PHP后端接口怎么写

来源:动视网 责编:小采 时间:2020-11-27 15:20:19
文档

PHP后端接口怎么写

PHP后端接口怎么写:php后台接口的实现方法1. 首先,要设置一个入口文件入口文件的话会引入到固定的api文件(如下):<php define("APPAPI_ALLOW_REQUEST_LOGIN", 'Y'); //是否允许传用户名密码参数的形式登录。如为Y则参数用户名密码参数和basic
推荐度:
导读PHP后端接口怎么写:php后台接口的实现方法1. 首先,要设置一个入口文件入口文件的话会引入到固定的api文件(如下):<php define("APPAPI_ALLOW_REQUEST_LOGIN", 'Y'); //是否允许传用户名密码参数的形式登录。如为Y则参数用户名密码参数和basic


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后端接口怎么写:php后台接口的实现方法1. 首先,要设置一个入口文件入口文件的话会引入到固定的api文件(如下):<php define("APPAPI_ALLOW_REQUEST_LOGIN", 'Y'); //是否允许传用户名密码参数的形式登录。如为Y则参数用户名密码参数和basic
推荐度:
标签: php 接口 后台
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top