最好的免费发布网站,兰州今天发生的重大新闻,中国菲律宾引渡,买实体服务器做网站这次的这篇文章介绍的是PHP接口的内容#xff0c;现在分享给大家#xff0c;也给有需要帮助的朋友一个参考#xff0c;大家一起过来看一看吧一. 接口按请求人可以分为两种#xff1a;一种是被其他内部项目调用的接口(包括js异步请求的接口和定时程序)。另一种是对外的接口现在分享给大家也给有需要帮助的朋友一个参考大家一起过来看一看吧一. 接口按请求人可以分为两种一种是被其他内部项目调用的接口(包括js异步请求的接口和定时程序)。另一种是对外的接口主要提供给外部开发者调用的。两种接口最大区别就是内部接口不需要太严格的身份验证而对外接口需要严格的身份验证加密解密方式各种各样其中最常见最简单的就是http basic验证例如我们的大后台弹出的账号和密码弹窗 就是用了basic验证输入账号和密码才能通过验证。但是如果内部接口涉及到重要的操作不希望被他人恶意请求的话还是要做一点加密验证的。二. 无论是哪一种接口都应该考虑到下面的问题1.安全。参数安全这个我们有$_INPUT基本就足够了。是否需要身份验证如果只是内部通知类/回调类的接口的话就算被恶意请求也不会影响数据正常这种的话可以完全不做验证举个栗子我做个一个同步订单状态的接口里面的流程是查询订单状态有问题的订单然后更新这些订单的状态。这种接口不需要返回任何值就算被坏人恶意调用也不会有毛线影响的那就根本没必要做身份验证了。所以这个是否加验证是按照接口实际逻辑决定的。2.能否重复请求。例如某个接口是根据传入的订单号插入一条数据需要做好重复请求的判断避免插入多条数据。三. 编写接口规范1. 用 try…catch…结构去写。(主要是 throw 可以随时结束程序这样很爽~)2. 返回状态码不要返回success等于true或者false如果要编写文档关于不同错误码的含义也应该写明白方便调用方查询出错原因。下面直接看栗子?php $code 200; // 接口状态码$name trim($_INPUT[name]); $age trim($_INPUT[age]); if (empty($name)){ $code 401; throw new Exception(名字不能为空);} if (!is_numeric($age)){ $code 402; throw new Exception(年龄必须由数字组成);} $database_obj new database_class(); $res $database_obj-save($name, $age); if ( !$res ){ $code 403; throw new Exception(保存数据失败);}$msg ok;} catch ( Exception $e ) { $msg $e-getMessage();}output_json($code,$data,$msg); // $data可以放置需要返回的数据// output_json函数在大function里面有~如果不想引入大function的话可以复制一份到自己项目// END?转载自https://www.cnblogs.com/xiaomendelu/p/5819708.html一. 接口按请求人可以分为两种一种是被其他内部项目调用的接口(包括js异步请求的接口和定时程序)。另一种是对外的接口主要提供给外部开发者调用的。两种接口最大区别就是内部接口不需要太严格的身份验证而对外接口需要严格的身份验证加密解密方式各种各样其中最常见最简单的就是http basic验证例如我们的大后台弹出的账号和密码弹窗 就是用了basic验证输入账号和密码才能通过验证。但是如果内部接口涉及到重要的操作不希望被他人恶意请求的话还是要做一点加密验证的。二. 无论是哪一种接口都应该考虑到下面的问题1.安全。参数安全这个我们有$_INPUT基本就足够了。是否需要身份验证如果只是内部通知类/回调类的接口的话就算被恶意请求也不会影响数据正常这种的话可以完全不做验证举个栗子我做个一个同步订单状态的接口里面的流程是查询订单状态有问题的订单然后更新这些订单的状态。这种接口不需要返回任何值就算被坏人恶意调用也不会有毛线影响的那就根本没必要做身份验证了。所以这个是否加验证是按照接口实际逻辑决定的。2.能否重复请求。例如某个接口是根据传入的订单号插入一条数据需要做好重复请求的判断避免插入多条数据。三. 编写接口规范1. 用 try…catch…结构去写。(主要是 throw 可以随时结束程序这样很爽~)2. 返回状态码不要返回success等于true或者false如果要编写文档关于不同错误码的含义也应该写明白方便调用方查询出错原因。下面直接看栗子?php $code 200; // 接口状态码$name trim($_INPUT[name]); $age trim($_INPUT[age]); if (empty($name)){ $code 401; throw new Exception(名字不能为空);} if (!is_numeric($age)){ $code 402; throw new Exception(年龄必须由数字组成);} $database_obj new database_class(); $res $database_obj-save($name, $age); if ( !$res ){ $code 403; throw new Exception(保存数据失败);}$msg ok;} catch ( Exception $e ) { $msg $e-getMessage();}output_json($code,$data,$msg); // $data可以放置需要返回的数据// output_json函数在大function里面有~如果不想引入大function的话可以复制一份到自己项目// END?相关推荐