用Drupal快速实现mobile平台服务端【转】
原文地址:http://www.terrysco.com/node/drupal-as-mobile-backend.html
用Drupal很容易实现一个API,让手机平台或者其他系统使用json的格式进行通信。
<?php
define('API_ERRORNO_INVALID_ACTION', 1);
define('API_ERRORNO_INVALID_PARAM', 2);
define('API_ERRORNO_NO_RECORD', 3);
define('API_ERRORNO_INVALID_NAME', 4);
define('API_ERRORNO_USER_BLOCKED', 5);
define('API_ERRORNO_LOGIN_FAILED', 6); // 根据错误代码返回错误信息
function api_message_wrapper($errno) {
$message = array(
API_ERRORNO_INVALID_ACTION => '非法的请求动作',
API_ERRORNO_INVALID_PARAM => '非法的请求参数',
API_ERRORNO_NO_RECORD => '查找不到数据',
API_ERRORNO_INVALID_NAME => '非法的手机号码',
API_ERRORNO_USER_BLOCKED => '当前用户已经被禁用',
API_ERRORNO_LOGIN_FAILED => '登陆失败',
);
return isset($message[$errno]) ? $message[$errno] : '未知的错误';
} // 验证合法的action
function api_action_route($action) {
$valid_actions = array(
'login' => 'login',
'register' => 'register',
'getCardInfos' => 'get_card_info',
);
return isset($valid_actions[$action]) ? $valid_actions[$action] : false;
} function api_menu() {
$items['api'] = array(
'page callback' => 'api_dispatch',
'access callback' => TRUE,
//'access arguments' => array('使用API'),
'type' => MENU_CALLBACK,
'file' => 'api.functions.inc',
);
return $items;
} // 成功返回
function api_response_sucess($data) {
drupal_json(array('ERRNO' => 0, 'DATA' => $data));
} // 失败返回
function api_response_error($errno) {
if ($errno && is_numeric($errno)) {
drupal_json(array(
'ERRNO' => $errno,
'MSG' => api_message_wrapper($errno),
));
}
} // API调度入口
function api_dispatch() {
if (!isset($_POST['ACTION']) || !api_action_route($_POST['ACTION'])) {
api_response_error(API_ERRORNO_INVALID_ACTION);
}
elseif (!isset($_POST['PARAM'])) {
api_response_error(API_ERRORNO_INVALID_PARAM);
}
else {
$param = json_decode($_POST['PARAM']);
call_user_func('api_call_'. api_action_route($_POST['ACTION']), $param);
}
}
适用方法:
http://localhost/drupal/index.php?q=api
http://localhost/drupal/api
用Drupal快速实现mobile平台服务端【转】的更多相关文章
- 快速理解高性能HTTP服务端的负载均衡技术原理(转)
1.前言 在一个典型的高并发.大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案.HTTP负载均衡的本质上是将Web用户流量进行均衡减压,因此 ...
- 推荐:让你快速搞定各服务端(api,pc,mobile,wechat)代码
如果你在写服务端 (PHP) ,会因为项目须求(做app.pc.mobiel.微信) 而写几套代码的,你不觉得很累吗? 现在的很多开源框架商用版本在做程序方面都是这么一套一套的,维护起来,二开起来特别 ...
- docker-compose 快速部署Prometheus之服务端并监控ceph cluster 使用钉钉webhook 报警
现在环境是这样: ceph 4台: 192.168.100.21 ceph-node1 192.168.100.22 ceph-node2 192.168.100.23 ceph-node3 1 ...
- 基于supersocket、C#对JT808协议进行解析构建gps监控平台服务端
GPS监控平台.车联网.物联网系统中GPRS网络数据的并发通讯和处理解析,主要功能有socket的UDP和TCP链路建立和维持,网络数据协议包接收与解析,分发上传到其他业务规则服务器,在物联网以及位置 ...
- 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)
本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...
- Netty源码分析之服务端启动过程
一.首先来看一段服务端的示例代码: public class NettyTestServer { public void bind(int port) throws Exception{ EventL ...
- 基于 xorm 的服务端框架 XGoServer
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- React 16 服务端渲染的新特性
React 16 服务端渲染的新特性 React 16 中关于服务端渲染的新特性 快速介绍React 16 服务端渲染的新特性,包括数组.性能.流等 React 16 终于来了!
- win7设置docker默认服务端地址
目录 win7设置docker默认服务端地址 1.开启docker远程访问 2.本地调整 2.1 docker.exe重命名 2.2 添加docker.bat 2.3 添加快速切换功能 3.使用验证 ...
随机推荐
- bzoj 1029 贪心
贪心的一种,维护一种尽可能优的状态(即不会比最优解差),将这种状态保持到最后. /*********************************************************** ...
- HDU 5673 Robot 数学
Robot 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5673 Description There is a robot on the origi ...
- CROC 2016 - Qualification B. Processing Queries 模拟
B. Processing Queries 题目连接: http://www.codeforces.com/contest/644/problem/B Description In this prob ...
- IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) D. Delivery Bears 二分+网络流
D. Delivery Bears 题目连接: http://www.codeforces.com/contest/653/problem/D Description Niwel is a littl ...
- TortoiseSVN里锁lock 的使用方法
刚才试验了一下,终于搞明白了TortoiseSVN里锁lock 的使用方法. 简单的说,如果压根没有锁lock,那么每个人都拥有一个本地copy,每个人都能自由地对本地copy编辑edit并提交com ...
- Ubuntu中升极下载4.2内核
http://tech.hexun.com/2015-09-11/179027013.html 从这段话中所表达出的意思可以了解,Linux Kernel 4.3版本已经开始进行,Linus Torv ...
- Java自定义Exception
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- UVa 1329 - Corporative Network Union Find题解
UVa的题目好多,本题是数据结构的运用,就是Union Find并查集的运用.主要使用路径压缩.甚至不须要合并树了,由于没有反复的连线和改动单亲节点的操作. 郁闷的就是不太熟悉这个Oj系统,竟然使用库 ...
- mac 查看cpu个数
mac 查看cpu个数 同是unix系统的mac,如何查看cpu个数及其相关信息呢?
- ICLR 2014 International Conference on Learning Representations深度学习论文papers
ICLR 2014 International Conference on Learning Representations Apr 14 - 16, 2014, Banff, Canada Work ...