cougar
V2EX  ›  问与答

准备用 php 给 app 写接口,以前没做过,请问大家有没有项目给予参考,谢谢

  •  2
     
  •   cougar · Nov 17, 2014 · 9800 views
    This topic created in 4374 days ago, the information mentioned may be changed or developed.
    我们有自己的网站,基于PHP+mySQL开发。

    目前正要着手于移动端开发,想用PHP给APP写数据接口,以前没做过给APP提供接口的工作,搜到的类似内容不多。

    不知道有没有参考案例?或者有没有在线上运行的样板可参考?

    先谢谢大家。
    Supplement 1  ·  Nov 17, 2014
    主要想知道app方面要不要传一些有用的信息之类的,比如imei,Phonetype,PhoneVersion之类的。

    原来做过给软件的内嵌页面,在header里会传一些类似的信息。
    Supplement 2  ·  Nov 17, 2014
    收藏量刷刷的涨啊,伙伴们都来献点计策嘛
    21 replies  •  2014-11-18 10:07:24 +08:00
    abelyao
    abelyao
    Nov 17, 2014❤️1
    1
    写 API 吗?和什么语言无关吧,看的是 API 的设计方式。
    参考 新浪微博 API,淘宝 API,微信 API,GitHub API 都不错,同时参考: http://www.ruanyifeng.com/blog/2011/09/restful.html 这篇文章
    qiayue
    qiayue
    Nov 17, 2014❤️4
    2
    1、需要加密,以确保只响应来自于自己 APP 的请求;
    2、使用 JSON 格式传输数据;
    3、RESTful;
    4、跟写网站一样,只不过视图变成了 JSON 输出。
    cougar
    cougar
    OP
    Nov 17, 2014
    4
    @abelyao 多谢

    @qiayue 加密那块是不是理解为必须要带token还是什么别的?
    cougar
    cougar
    OP
    Nov 17, 2014
    5
    @cooper 非常感谢!
    em70
    em70
    Nov 17, 2014❤️1
    6
    这不需要什么特殊处理啊,app需要读取什么数据,用GET或者post方法提交服务器(一个PHP接口地址),返回XML或者json就行了,PHP只处理逻辑,显示给APP负责.
    cougar
    cougar
    OP
    Nov 17, 2014
    7
    @em70 原来一直做网站的,想找些app方面有什么特殊的处理,比如要token,要传设备信息神马的。
    gangsta
    gangsta
    Nov 17, 2014❤️1
    8
    google RESTful
    neutrino
    neutrino
    Nov 17, 2014❤️1
    9
    post的内容和时间戳加密后放在head里
    cougar
    cougar
    OP
    Nov 17, 2014
    10
    @neutrino 恩 多谢
    em70
    em70
    Nov 17, 2014❤️1
    11
    @cougar 如果数据很关键害怕人抓包,加密很简单,XML或者json做3次base64再把里面的a和b,c和d互换就足够应付水平一般的小偷了.要防高手,那就用一些专业的加密算法,aes128什么的,GET传个密匙.看有没有必要,不是必须的.
    zsk425
    zsk425
    Nov 17, 2014❤️1
    12
    siteshen
    siteshen
    Nov 17, 2014❤️3
    13
    HTTP header里加上版本信息时很有必要的,无论是以后增加兼容性API的hack,还是自己做数据分析。header名供参考:

    X-{APPNAME}-APP-VERSION
    X-{APPNAME}-DIST-CHANNEL
    X-{APPNAME}-DEVICE-PLATFORM
    cougar
    cougar
    OP
    Nov 17, 2014
    14
    @em70 @siteshen 都是实用的经验。谢谢。

    @zsk425 目前看起来有点吃力,慢慢啃,多谢
    kslr
    kslr
    Nov 17, 2014 via Android❤️1
    15
    我觉得加密分两种级别,一种是usertoken,一种是ssl
    视安全程度而定
    ETiV
    ETiV
    Nov 17, 2014❤️1
    16
    1. 接口都是你问我答, 规则两边定好就行了.
    2. HTTP GET 会被缓存, POST 不会.
    3. 不要迷信 HTTPS, 我私自开一个 mitmproxy, HTTPS 访问一样是明文的. 这样你API自身没做内容加密, 还是没用.

    你的内容真的很重要, 还是会有人去破.

    我当初在 PSP 上用 gdb 下断点+dump内存的方式获取游戏解密出来的内容, 就是说我根本不需要知道你的加密算法和密钥, 利用游戏本身提供的解密功能就行了...
    kukat
    kukat
    Nov 18, 2014❤️1
    17
    没有绝对安全的防范方法

    只有比较有效:
    1. SSL
    2. 公钥+私钥+timestamp based singautre
    kukat
    kukat
    Nov 18, 2014
    18
    @kukat

    *signature
    ashamp
    ashamp
    Nov 18, 2014❤️1
    19
    留名,等高人的解决方案学习之
    自己的api用的是asp的ashx解决的
    xuwenmang
    xuwenmang
    Nov 18, 2014❤️1
    20
    嗯,学习下说不定就能自己写个社会化评论看看。。。
    cougar
    cougar
    OP
    Nov 18, 2014
    21
    @ETiV 实用,谢谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   530 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 19:54 · PVG 03:54 · LAX 11:54 · JFK 14:54
    ♥ Do have faith in what you're doing.