前端同学-少许后端知识,有效减少开发时间

工作中,客户端的朋友难免遇到与后端关于接口数据结构问题的扯皮,大大浪费了时间,针对这点学习一点后端知识,能把多数无技术含量的扯皮扼杀在后端小学生开口之前.

经过改良后的开发流程大概这样:

根据接口定义完成开发, 在服务器上根据定义构造测试数据, 服务器上编写好相关的接口, 更改电脑host至服务器, 手机捆绑代理, 测试完成, 把自测流程和结果提给测试, 远离扯皮, 愉快喝茶(加班).

用到的知识点

1.服务器搭建(是否开启ssl要和app中同步,原因后讲) 2.host, 3.php编写接口 ;
php简直是世界上最好的语言, 没有之一….

这里不讲搭建服务器,不懂得小兄弟自行谷歌…需要具有一定的php语言和调试基础 :

1.搭建服务器

不要一味追求https来使得更炫酷,要保证和app的服务器同步, 因为如果你的app对应的服务器不是https, 而你使用开启ssl的服务器来host, 此时会有这样的现象(从抓包工具,或者浏览器可以看到): 开始访问原始url之后(http), host解析域名重新指向主机(https), 此时url中紧邻域名之后的位置会自动删掉一个字符, 这个字符可能是 反斜杠,问号等有意义的字符,进而导致重定向失败,初步分析是http协议栈为防止url溢出,申请了固定长度的字符串来容纳url的域名段,http定向到https后,前段的字符串增加了1,即字符 “s” ,因此导致了末尾的裁剪 . 有小伙伴能解决这个问题的(除去重编译内核) 愿听详解.

2.更改电脑端的host

把你要测试的域名映射到服务器的ip, 以使得相关的接口定向到自己的服务器, 拦截到请求. 这里推荐一款软件 switchHosts, 能很轻易的切换host, 不需要重复输入密码, 但软件安全上存在一定的风险, 酌情考虑使用.

3. 重点在接口的提供和各个url的拦截

1. 更改了host之后, 原来访问正常服务器的url被重新指向了新的服务器, 处理逻辑定向到 apache 配置的根路径的 index.html或index.php, 这里应该放置一个index.php文件, 用于给所有接口分流(根据参数, 把请求分发给相关的处理逻辑).
2. 在index.php文件中,不要加相关接口的处理逻辑, 建议只应该放针对不同参数url的分流, 例如 ? a=say_hello 接口和 ?a=say_goodbye 接口, 其处理逻辑应该分别定向到其他文件中.

index.php请求拦截逻辑如:

<?php

$url = 'http://www.macro-c.cn/wordpress/';

if(count($_GET)!=0)
{
$param_a = $_GET['a'];
//根据 a 参数区分不同接口
if($param_a=='check-user-first-come')
{
$url = $url.'api_test/check-user-first-come.php';
}
else if($param_a == 'book-detail' or $param_a == 'get-long-comment-info')
{
$url = $url.'api_test/community.php';
}
else if($param_a == 'after-share')
{
$url = $url.'api_test/after-share.php';
}
else
{
//未定义的接口:代理服务器请求原接口,将返回数据转发
$url = $url.'api_test/final-url.php';
$url = $url.'?'.$_SERVER['QUERY_STRING'];
}
}
header("Location: $url");

?>

上例中php代码, 首先根据参数 a 的值不同, 重新拼接url , 将url定向到不同的处理接口, 再根据具体的需求在各个处理接口返回相应的假数据. 其中header( )方法这里的作用是url转发;

保护周边接口,降低影响范围:

注意一点, 一个app,从启动到切换到测试页面过程中,可能需要调用非常多个接口, 在自己的服务器中全部定义相关的接口是不可能的, 但此时由于已经将目标服务器的host定向到了本机, 所有的请求不会再指向原来的服务器, 此时可能造成很多页面得不到数据. 因此上例中else逻辑处, 对url进行了重新拼接,并且还原了原url的所有参数, 定向到了final-url.php中,

周边接口统一处理逻辑final-url.php形式如:

<?php
header("Content-Type: text/html;charset=utf-8");

$url_full = 'http://mapi7.dangdang.com/index.php'.'?'.$_SERVER['QUERY_STRING'];

echo file_get_contents($url_full);

?>

上例的作用是以当前服务器作为客户端做url请求, 并将结果原样返回.

这样一番操作, 就能根据url的接口不同, 返回不同类型的测试数据, 并且可以做到不影响其他接口.

拦截接口的处理逻辑:

其他接口处理函数 如 after-share.php其代码形式如下:

<?php
header("Content-Type: text/html;charset=utf-8");
include_once 'tools_headfile.php';
$task =
'{
"errorCode":0,
"errorMsg":"成功",
"hasGetReWard":"2"
}';
$str_task =
'{
"toast":"呵呵傻逼",
"btnStr":"跳任务列表",
"linkUrl":"communitytasklist://"
}';
$arrayOut = string_to_array($task);
$arrayOut_task = string_to_array($str_task);
$arrayOut['task'] = $arrayOut_task;
echo JSON($arrayOut);
?>

其中string_to_array()和JSON()都是 封装的函数, 作用是将字符串转换成php数组(键值对数组), 和将数组(键值对数组)转换成json对象.

只需基本的php知识, 方便了前端,后端,测试同学的工作. 现在, 一言不合送给测试代理的ip地址和端口号, 完

友情推荐几款工具: switch hosts很方便的切换host; sublime text 神器;filezilla神器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容