api接口的简单见解与优化

原创 2018年04月16日 00:44:02

初级:基础接口  如注册登陆,文章内容的增删改查(一般将增和改放一起写),邮件发送

中级:中级接口   主要是一些借助第三方接口文档,如短信,push消息,微信支付

高级: 项目工程化及性能调优   主要包括自测脚本,lib公共代码的抽离,第三方composer管理,异常处理,DAO数据操作层抽离和基类增删改查的实现(框架自带),统一的api接口数据返回,统一的接受数据

高级优化-详情:公共代码抽离:将常用的方法抽离到公共控制器或模型中

统一的api接口请求:将其封装成一个方法放公共方法中

统一的api接口返回:写个类,将错误码和错误信息定义成一个数组常量,错误码作为键,错误信息作为值。再定义一个方法,传入不同错误码,根据这个数组找出相应的错误信息返回


异常处理,用try cache 来实现.try(连接数据库,逻辑处理)cache(返回错误码和错误信息)。

在具体的地点写,方便知道是哪的错误


此处主要是为了防止当由报错信息时造成接受不到相应参数造成系统的崩溃,

最省事的是可以在最外层代码中写,如下


初中级-详情 :密码加密:主要有个加盐操作,加盐就是另加一些公司内部字符串与要加密的信息组合一起后用MD5加密

如:MD5(“salt-xxx-".$password)


找回密码:发送一个找回密码的链接,需要跟上用户信息(验证用户,知道是那个用户改,好去修改库中此用户的密码),要有时效性

邮箱是否被阅读的验证:在邮箱中加一个图片,当用户点开邮件时,会访问这个图片,此图片src为一个地址(为一个php文件),此地址需要跟着此用户的邮箱,我们在服务器端可以get 接收到此src后跟的邮箱地址,进而判断用户是否点开邮箱(如可以在库中修改此用户是否点开邮箱的状态)

对于这个问题有一个简单的解决方法,我们知道,邮件内容可以以html 的形式发送,我们可以在内容中插入图片,那么关键就在这个图片里面了。

假设我们的邮件内容是这样的:

文件content.php代码如下:

1
2
3
4
5
6
7
8
9
10
11
<table width="555" height="50" border="0" align="center" cellpadding="0" cellspacing="0" background="<?=$bg?>">
<tr>
 <td>这是测试内容</td>
   </tr>
   <tr>
 <td> </td>
   </tr>
   <tr>
 <td> </td>
   </tr>
 </table>

这个$bg要怎么写呢?如果邮件是发送多个人呢?这里又怎么区分呢?

假设链接是这样的:http://www.xxx.com/image.php?email=$email 再看看image.php的代码

文件image.php代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$email=$_GET["email"];
if($id)
{
  include_once("/conn.php");
  mysql_query("update mail_list set has_read='yes' where email='$email'");
}
header("Content/type:image/gif");
$im=imagecreatefromgif("bg.gif");
imagegif($im);
imagedestroy($im);
?>

看到这里你也许就明白了。所以我发送的邮件的内容就是这样的:

1
2
3
4
5
6
<?php
ob_start();
include_once("content.php");
$content=ob_get_contents();
ob_end_clean();
?>

写到这里,我们并没有对邮件内容中的背景图像进行替换,接下来的问题将会逐步解决这个问题, 这个是用phpmail发送邮件的部分代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
/*
$contact=array("userA"=>"aaaa@sina.com","userB""=>"bbb@163.com","userC"=>"ccc@qq.com");
*/
foreach ($contact as $unm=>$email)
{
  $bg_file="http://{$_SERVER['SERVER_NAME']}/image.php?email=$email";
  $str=str_replace('background=""',"background=\"$bg_file\"",$content);
  $mail->MsgHTML($str);
  $mail->AddAddress($email,$unm);
  $mail->Send();
}
?>

这里为什么要用循环的方式逐一发送呢?因为为了区分是哪个联系人读过邮件,每封邮件的内容的背景图片的显示不一样。在发送之前,我们对内容进行处理,对背景进行替换,这样我们看到的邮件内容的背景图像的src就变成了这样:http://www.domain.com/image.php?email=aaa@sina.com等等。

注意这里还有一个问题,你执行上面的代码之后,会发现一个问题,发送到第一个人的是3封,第二个人的是2封,第三个人的是1封,这里为什么呢?这里就要看看AddAddress方法了。修改办法是:打开class.phpmailer.php,找到310行,将private $to=Array()改成public $to=Array().

然后在发送邮件的代码中加入:

1
2
$mail->to=Array();
$mail->AddAddress($email,$unm);

写到这里,就不用再做过多说明了。



JDBC优化之手写简单框架实战

-
  • 1970年01月01日 08:00

简单免费实用的API接口

一.平台接口 1.聚合数据(API数据接口) 2.百度APIStore(百度APIStore) 二.单个实用接口 1.地图接口 阿里云根据经纬度获取地区名接口: http://gc.d...
  • vailee
  • vailee
  • 2017-02-08 09:15:22
  • 3293

RecycleView 滑动优化

在RecycleView设置是否滚动变量,然后在滚动监听器的onScrollStateChanged()方法中给boolean值赋值,看是否在滚动。 这样在我们使用这个适配器的时候,就可以根据滚动状态...
  • TS_learner
  • TS_learner
  • 2017-05-12 14:53:25
  • 361

API接口访问优化方案

背景:    rest接口提供服务. 接口的逻辑是:POST服务,批量数据的传入 到本地库(根据入参的条件分别到本地15个库表中查询)查询,以前的处理逻辑为 串行执行,假设有200的参数,则打开20...
  • damowang_xxx
  • damowang_xxx
  • 2017-07-10 16:45:33
  • 428

存储过程的一些简单理解

存储过程经过编译和优化后存储在数据库f
  • fuqiaoyimeng
  • fuqiaoyimeng
  • 2014-08-28 15:33:56
  • 1052

对java异常的理解

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------ 异常是什么? 异常就是在程序运行过程中所发生的不正常的事件,它会中断正在运行的...
  • u010333409
  • u010333409
  • 2013-05-10 23:41:53
  • 691

简单的使用API接口

如何简单的在Eclipse上使用API 1我是先在心知天气上面,注册了一个账号(因为要获得API的key),可以免费使用天气的API 2获取一个http地址,可以自定义一个你要查询的城市的地址,字符串...
  • wang0112233
  • wang0112233
  • 2017-08-12 19:13:06
  • 105

Api接口-------优化

造成执行效率低的原因可以由很多方面找原因 从代码层面,代码质量低,执行效率也会有很大影响的。 从硬件方面,服务器配置低,服务器配置是基础,这个跑不动肯定慢。 从数据量方面,查询数据量过多,s...
  • flower1q84
  • flower1q84
  • 2018-02-05 19:15:30
  • 90

[详解]优化API接口响应速度的套路

前言API接口响应慢? SLA一直提不上去? 其实这是后端程序员想进阶必须要跨过去的坎:就是把它优化掉。 那么这其中到底有没有套路呢?答案是:有的。本文将介绍目前正在用并且十分“无脑”有效的这个...
  • u011957758
  • u011957758
  • 2017-09-18 01:53:06
  • 1598

简单的接口调用例子

这是一个简单的接口调用例子,可以根据需求自我修改 package com.wx; import java.io.BufferedReader; import java.io.Da...
  • qq_35145357
  • qq_35145357
  • 2018-02-07 16:18:00
  • 127
收藏助手
不良信息举报
您举报文章:api接口的简单见解与优化
举报原因:
原因补充:

(最多只允许输入30个字)