准备用 php 给 app 写接口,以前没做过,请问大家有没有项目给予参考,谢谢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cougar
V2EX    问与答

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

  •  2
     
  •   cougar 2014-11-17 16:30:28 +08:00 8927 次点击
    这是一个创建于 4011 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们有自己的网站,基于PHP+mySQL开发。

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

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

    先谢谢大家。
    第 1 条附言    2014-11-17 17:14:48 +08:00
    主要想知道app方面要不要传一些有用的信息之类的,比如imei,Phonetype,PhoneVersion之类的。

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

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

    X-{APPNAME}-APP-VERSION
    X-{APPNAME}-DIST-CHANNEL
    X-{APPNAME}-DEVICE-PLATFORM
    cougar
        14
    cougar  
    OP
       2014-11-17 22:02:37 +08:00
    @em70 @siteshen 都是实用的经验。谢谢。

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

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

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

    只有比较有效:
    1. SSL
    2. 公钥+私钥+timestamp based singautre
    kukat
        18
    kukat  
       2014-11-18 00:32:23 +08:00
    @kukat

    *signature
    ashamp
        19
    ashamp  
       2014-11-18 02:09:18 +08:00   1
    留名,等高人的解决方案学习之
    自己的api用的是asp的ashx解决的
    xuwenmang
        20
    xuwenmang  
       2014-11-18 06:36:49 +08:00   1
    嗯,学习下说不定就能自己写个社会化评论看看。。。
    cougar
        21
    cougar  
    OP
       2014-11-18 10:07:24 +08:00
    @ETiV 实用,谢谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     925 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 21:41 PVG 05:41 LAX 13:41 JFK 16:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86