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 "

";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后端接口怎么写相关推荐

  1. VUE开发环境下mock模拟数据与后端接口对接示例

    在以往的前端开发中,前端严重依赖后端,必须等待后端接口开发出来才能继续开发.使用mock,可以使得前后端开发异步进行,互不影响.Mock.js 是一个模拟数据生成器,使用它可以拦截ajax请求,直接模 ...

  2. python后端接口怎么写_看看人家那后端API接口写得,那叫一个优雅!

    程序员的成长之路 互联网/程序员/技术/资料共享 阅读本文大概需要 4 分钟. 来自:今日头条,作者:老顾聊技术 链接:https://www.toutiao.com/i669440464582711 ...

  3. RuoYi-plus一款由SpringBoot2.x,springcloudG开发的SMP多商户权限管理系统+API接口服务组成,可选性后台管理系统或后端接口服务

    数据库脚本请加QQ群,在群文件下载. [技术支持群]687672649[技术交流群]751872263 通知!!! RuoYi-plusv3.0版本介绍: 成功集成多商户管理模式,完美的与基础框架相融 ...

  4. 解决vant sku 后台数据与前台数据绑定以及金额以分为单位问题

    小白一只,在做电商项目使用vant的sku组件时遇到了很多问题,其中主要的就是数据的的绑定与格式问题,并不知道后台如何来传给我sku的数据格式,在网上大多都是前台简单的死数据实现的基础sku,并没有后 ...

  5. 前端写接口 请求后台数据 存vuex中 打印到控制台

    最近从B站上面跟着敲 vue 的项目,多次看到有关于前台拿到后端的接口地址文档,写前端接口,然后请求后台数据,放到 vuex 当中,再然后再在需要展示数据时渲染出来,于是做个输出小结,分享出来,供大家 ...

  6. 若依前后端分离版怎样修改主页面显示请求的SpringBoot后台数据

    场景 使用若依的前后端分离版,本来的首页效果是 现在如果要根据具体业务实现从后台获取要显示的数据实现类似下面的效果 注: 博客: https://blog.csdn.net/badao_liumang ...

  7. 用echarts写潮汐表,并处理后端传来的数据为潮汐表接口的数据

    这是后端传来的接口类型:其中分别是今天,昨天,明天的数据,一天24个小时,分别为a0和a23表示:后端接口数据如下: dom表单代码如下: <div class="tide" ...

  8. echarts如何获取后端的值_Echarts 获取后台数据 使用后台数据展示 柱形图

    后台数据要以json格式返回 页面:引用echarts.js , 然后data以ajax的数据请求并返回 String path = request.getContextPath(); String ...

  9. js 加入debug后可以进入controller_写给前端的 Nest.js 教程——10分钟上手后端接口开发

    前言 沉默了很久,一直都没发文章,有些惭愧. 最近实习结束之后回了学校,提前开始做毕业设计了.对,就是毕业设计. 近两个月把 React Native.Vue 3.0 和 Nest.js 都摸了一下, ...

最新文章

  1. 链表问题9——复制含有随机指针节点的链表(初阶)
  2. spring@PropertySource用法
  3. java复杂吗_java – 是哈希一个合适的解决方案吗?我过度复杂吗?
  4. python并发入门(part5 event对象)
  5. Torchvision目标检测模型训练过程记录
  6. 【腾讯面试题】SQL语句优化方法有哪些?
  7. voinc vue实现级联选择
  8. java上传头像插件_JSP+SpringMVC框架使用WebUploader插件实现注册时候头像图片的异步上传功能...
  9. C语言排序名单(字典)
  10. OpenResty概述
  11. 免费好用的划词搜题神器插件
  12. Android系统优化的那些年那些事
  13. PNG图片怎么转成ICO?分享两种思路
  14. 【BZOJ 4242】水壶
  15. 人数全球第一,但现在中国的问题不是人太多,而是太少 | 浪潮工作室
  16. python绘制七巧板_CSS3制作七巧板动画
  17. 百度账号因安全问题被限制登录,该如何申诉?
  18. arthas离线包使用说明
  19. 局域网如何共享文件?计算机1通过ip访问计算机2,拿取共享文件。
  20. Protel DXP 2009备份

热门文章

  1. 基于beego的高并发开源论坛框架Casnode
  2. 畜牧业中资金问题的解决——活体贷技术和实现原理
  3. 读书笔记:南怀瑾《历史的经验》
  4. VS2019 编译 paho-mqtt-cpp 遇到的问题
  5. 网易im 服务器消息格式,基础消息功能
  6. Sitecore学习总结(1)
  7. elementui固定表格头部
  8. HTML图片热区map area的用法整理
  9. ThinkPHP 虚拟主机 跳转public主页设置
  10. day15-Linux的优化