用PHP写手机端APP数据接口和PC端数据接口有什么不一样?
都一样的 只是由于app不是浏览器不能正常使用cookie所以不支持session认证 在做app接口的时候一般都会使用自己定义的token来认证 其他的都是一致的
PHP给APP写接口怎么写
找个框架吧,很多框架有为接口设计的功能
Larvel
ThinkPHP5
等等。
如果要用原生PHP写,需要做到以下几点:
兼容输入
请求数据的数据体 有 POST(form-data和form-urlencoded两种),BIN,RAW几种,接口一般需要兼容这几种数据提交方式
统一错误输出
有全局统一的错误代码
可以捕捉系统异常并以接口格式返回错误信息或预定义信息
返回格式定义
一般主流支持json格式返回,但更好能做到根据参数可以自定义返回格式(如 xml或json)
授权方式及权限分配
比较常见的OAUTH授权等。
不同接口按更低需求授与对应账户权限
用thinkphp写一个app登录的接口 麻烦哪位大神给个事例
1、可以使用 REST模式 来开发 App 接口,首先建立一个公共控制器,再建其他控制器继承它即可。
2、确定好返回的数据内容格式及信息码;
?php
// App接口公共控制器 AppController
namespace Api\Controller;
use Think\Controller\RestController;
class AppController extends RestController {
// 自动加载的东西
function _initialize() { }
// 验证 客户端 token
protected function checkAppToken($apptoken){
// 引入 function.php 中定义的检测 apptoken 的函数
if(checkingAppToken($apptoken)){
return true;
}else{
$data['code'] = '404';
$data['msg'] = 'apptoken无效';
$data['data'] = null;
$this - response($data, 'json');
exit();
}
}
// 验证 用户 token
protected function checkUserToken($usertoken){
}
// 各种验证 ……
}
?
复制代码
其他接口控制器继承 AppController
?php
// 内容控制器 ContentsController
namespace Api\Controller;
class ContentsController extends AppController {
// 自动加载验证
function _initialize() {
parent::_initialize();
// 验证 客户端 token
$apptoken = I('post.apptoken');
parent::checkAppToken($apptoken);
// 验证 用户 token
$usertoken = I('post.usertoken');
parent::checkUserToken($usertoken);
// 各种需要验证的验证 ……
}
// 各种业务 ***
public function index(){
// 返回数据
$this - response($data, 'json');
exit();
}
}
?
求教php 做APP接口 整个通信流程
我写过几个APP,可以分享经验给你~
1、你可以把app的请求当成get或者post请求,PHP直接可以用$_GET、$_POST接收,你也可以理解成ajax,当然$_FILES肯定是不能用的
2、上传图片要使用二进制流,PHP端这一届file_put_contents 写成一个图片文件
3、不要用$_SESSION。因为app的每次请求都会重新刷新session_id,就相当于一个新的访客
4、因为不能用session所以会员中心这块要设计成token。逻辑就是APP端调用php的登录接口(接口返回一个唯一的字符串,这个串就是token)并且登录成功后把token保存起来,每次登录都刷新这个token。有涉及到会员的接口调用时都要传这个token,PHP根据token来查找是哪个用户。
PHP开发APP接口需要注意哪些问题
PHP开发APP接口需要注意下面问题:
1.制定规范
开发前一定要定好一个规范,比如要定好数据返回的通用参数和格式。关于数据格式,用的比较多的有xml和json,我建议用json,因为json比xml的好处更多。
2.精简的返回数据
接口数据因符合需要什么返回什么的原则,比如要查询某个用户的余额和注册时间,网页里面的做法可能是select * from user where
uid=1,但是接口一定要select balance,regtime from user where
uid=1。因为接口返回数据是要有开销的,要流量的,能少返回数据就尽量少返回,这样可以大大的提高性能。
3.数据类型要严格
要注意数据的类型,整数类型的数据一定要转为int,因为app客户端开发的java、object-c语言对数据类型比较严格,类型不对会照成app闪退。
4.要写接口文档
一定要写好接口文档,并按照模块写,而且还要书写规范,更好的格式是:
接口请求地址;请求参数(包括参数名、类型、是否必填);测试参数举例;返回参数(参数名,并注明每个参数的含义)。
这样哪怕以后项目很大,以不会照成维护困难的问题。
5.保证代码正确性
要验证保证代码正确无误,而且生成环境中要屏蔽掉错误,避免头部有额外的输出,照成返回的json等数据解析失败而导致app闪退等。
6.要优化代码的性能
app要求响应迅速,这样才能给用户比较好的体验感。所以移动接口端在处理业务逻辑的时候,要避免不要执行太复杂的sql语句,或者含有大量的循环,能做成缓存的尽量做缓存,比如将首页的热点模块信息可以存到redis缓存中。在不考虑网速的情况下,比较理想的接口响应时间应该是200毫秒以内。
7.不要随意更改旧接口
app不像网页,app一旦发布,有人使用之后,接口就不要乱修改了。以后升级也是,修改要在保证接口原有结构之上进行额外的扩展,否则会导致调用旧版接口的app出现bug。
8. 注意接口的安全
安全高于一切,必须要保证接口的安全。 *** 号码等敏感信息在传输的过程中一定要加密,否则可能会被别人抓包到。拿取用户信息的接口一定要验证权限,以防止接口被恶意调用,泄密用户信息,甚至篡改信息。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。