V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cougar
V2EX  ›  问与答

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

  •  2
     
  •   cougar · 2014-11-17 16:30:28 +08:00 · 8527 次点击
    这是一个创建于 3658 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们有自己的网站,基于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  
       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   ·   实用小工具   ·   2930 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:41 · PVG 11:41 · LAX 19:41 · JFK 22:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.