7,PHP接口开发思想

作者: 陈钢镚学财 | 来源:发表于2016-11-09 13:02 被阅读419次

    开发流程与思想

    • 思想与概念

      1,API用于接收数据与返回数据 API(Application Programming Interface,应用程序编程接口)
      2,用php开发供app使用的API,其实比web开发会更加简洁,分层会更加明显,不像web开发那样,有时候V和C还纠缠不清。
      3,API只需要以json或xml的数据格式返回数据给客户端即可
      4,从某种意义上而言,API开发中php主要负责了M和C层,V层已经彻底剥离。

    • 处理流程

      1, 客户端发送信息(调用接口),一般也是通过post和get来的,每一个团队都会约定好
      2,有了参数,PHP则根据应用需求,完成数据处理,操作数据库等,最终将处理结果返回给APP(客户端)
      3,客户端得到参数,在客户端本地与用户交互

    • 注意点

    1,对于数据的输出最好用json,json具有相当强大的跨平台性,市场上各大主流编程语言都支持json解析,json正在逐步取代xml,成为网络数据的通用格式
    2, 接口安全,一定要增加接口验证。例如,客户端和服务端针对不同接口统一做好加密方式,服务端在对于每次接口需要都要进行验证。以保证防止接口被恶意刷新或黑客恶意调用,尤其是大型商业应用
    3, 对于线上的 API 必须保证所有接口正常且关闭所有的错误信息error_reporting(0),在输出JSON 时,不能有任何其它输出,否则,客户端将解析数据失败
    4,开发 API 和 WEB 有一定的区别,如果是 WEB 的话,可能代码出错了,不会导致特别严重的错误,也许只是导致数据写入和查询失败,也许导致 WEB 的某个部分错位或乱码。但如果是 API
    5,从效率而言,其实做API,框架并不是最合适的,但TP5专为API而生

    • 发散思维

    1,腾讯微博淘宝等开放平台。

    其实那些开放平台,所谓的开放,就是给你提供一个这样的接口,你根据他们提供的技术文档,
    按他们制定的格式和要求,调它们提供的 接口文件(一般都是返回JSON或者XML),
    你就可以获取到他们的相关信息,
    例如:QQ用户基本信息、淘宝店铺、商品消息等等。然后在根据这些消息,在你的应用里完成交互
    

    2, ajax 也是调用 API 的一种体现形式

    PHP开发APP后端之总结

        接口,准确而言是通信接口,可用于获取数据和提交数据
        支持xml,json数据格式,可在请求接口时,加上一个参数,用于告诉服务端期望得到的数据类型(前提是接口支持此功能)
    

    1,xml
    标签可自定义,适合传输
    所有只能有一个根节点,可对标签,也可单标签
    编程时可读性强
    2,json
    传输速度快
    生成速度快(php)
    接口开发
    封装返回数据的方法(xml,json,综合返回)

    其他

    1,PHP处理缓存,主要操作如下
    - 生成缓存
    - 获取缓存
    删除缓存
    2,静态缓存:以静态文件形式保存在磁盘中,从而减轻数据库压力(如Thinkphp的File缓存)
    Memcache和Redis
    分别可通过命令和php脚本形式处理缓存
    用于管理数据,其数据存放于内存,读写快(Mysql存放在磁盘)
    Redis可定期将数据备份到磁盘中,以此实现持久化存储,同时还支持除key/value以外,list、set、hash等数据结构
    Memcache并不支持持久化,也仅支持简单的key/value
    3,Memcache和Redis的使用
    安装服务,使用客户端操作
    设置缓存过期时间
    php如果使用,则必须开启相应的扩展,如phpredis
    4,linux定时任务
    crontab 定时执行(不仅仅执行php,也可执行其他命令)
    crontab -e 编辑某个用户的cron服务
    crontab -l 列出某个用户cron服务列表
    crontab -r 删除某个用户的某条cron服务
    5,app版本升级
    版本表示,是否升级(强制),url,升级提示等

    相关文章

      网友评论

        本文标题:7,PHP接口开发思想

        本文链接:https://www.haomeiwen.com/subject/uigzuttx.html