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

后台提供接口,有要求把多个参数转换成 json 字符串传过去的吗?

  •  
  •   hydyy · 2017-06-20 14:00:39 +08:00 · 2593 次点击
    这是一个创建于 2495 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司新来做后台的哥们,且不说技术到底怎么样。今儿让我们传参数的时候把多个参数转换为 jsonstr 给他们穿过去。我就特不能理解,为啥要做这事呢,多累腾啊,没事瞎折腾啥呀。

    为了这个事跟后台的吵了一架。

    好郁闷啊!

    兄弟们你们公司提供的接口有这么干的吗?

    第 1 条附言  ·  2017-06-21 10:07:33 +08:00
    随意吐槽,停停停。 咋的都行
    21 条回复    2017-06-20 17:11:20 +08:00
    maemual
        1
    maemual  
       2017-06-20 14:06:37 +08:00
    还好吧,我也希望接口能全部统一用 json 来交互,但是不会强求吧。
    qiayue
        2
    qiayue  
       2017-06-20 14:08:19 +08:00
    你们之前没有 API 吗?按照之前的方式来。
    hotStrip
        3
    hotStrip  
       2017-06-20 14:13:16 +08:00
    我们有啊,但是也不费劲吧,封装个方法就好
    paradoxs
        4
    paradoxs  
       2017-06-20 14:15:45 +08:00
    接口文档是谁审批的? 格式怎么定的怎么来.
    hydyy
        5
    hydyy  
    OP
       2017-06-20 14:26:25 +08:00
    @hotStrip 不费劲,很简单,但是我个人是希望可以统一规范,犯错的概率会低很多。
    DT27
        6
    DT27  
       2017-06-20 14:26:56 +08:00
    你去看看各种 api 文档就知道都是这么要求的了。。。
    hydyy
        7
    hydyy  
    OP
       2017-06-20 14:27:07 +08:00
    @maemual 难道我真的 out 了? 优势在哪里? 区别不大,但是打乱了原有接口规范啊。并没有什么好处。
    hydyy
        8
    hydyy  
    OP
       2017-06-20 14:30:13 +08:00
    @DT27 能否提供个链接, 我接触到的 api 很少有类似的要求。 可能是我真的太久没关注了吗?
    czzhengkw
        9
    czzhengkw  
       2017-06-20 14:30:55 +08:00
    做为一个项目的后台,应当要求统一的传参形式,json 也好,form 表单也行,但是不能混着用……
    learnshare
        10
    learnshare  
       2017-06-20 14:31:14 +08:00
    做底层开发一般会自己造协议,比如前几个字节代表数据长度,往后再截取几个字节,就是这段数据的内容。
    但 Web 开发一般都是 JSON
    iyaozhen
        11
    iyaozhen  
       2017-06-20 14:31:42 +08:00
    貌似现在都是 json 吧。
    不过这事就是个约定,一定要统一。
    万一再来个人说用 xml 呢
    DT27
        12
    DT27  
       2017-06-20 14:34:30 +08:00
    @hydyy 哎,好像我理解错了。。。都是要求 json 格式,但是没要求转成字符串。
    都是返回字符串。。。
    hydyy
        13
    hydyy  
    OP
       2017-06-20 14:37:05 +08:00
    @iyaozhen 是传入参数都用 json 吗?比如 A 接口有三个参数:a, b, c.
    然后把三个参数组装成 json,传一个参数 jsonstr 过去

    都是这样了吗? 没有别的意思,只是想了解一下。

    另外你说的对, 统一最重要。
    hydyy
        14
    hydyy  
    OP
       2017-06-20 14:38:21 +08:00
    @DT27 返回 json 这个没毛病,业界统一都是这样做的。 是调用 api 时候传入的参数。 好郁闷啊,现在得妥协了,项目进度要紧。
    iyaozhen
        15
    iyaozhen  
       2017-06-20 14:40:20 +08:00
    @hydyy 一般都是直接 post 一个 json 串吧。

    传一个 jsonstr 是指什么? get 参数里面 jsonstr={json} ?
    hotStrip
        16
    hotStrip  
       2017-06-20 14:48:58 +08:00
    @hydyy 那倒是,有时候我们这就会因为传参方式出错
    zpf124
        17
    zpf124  
       2017-06-20 14:49:19 +08:00
    这就看具体情况了。

    是不是用 Restful 格式呢?
    是不是 因为 原本的 kv 格式 后台序列化有问题呢? (比如 jquery.ajax 序列化数组会多多一对[],变成 arr[]=2,arr[]=2,导致 我后台反序列对象里的 arr 获取不到值, 不要吐槽我们为什么用 jQuery,我只是个后台开发的新人)


    而且 让你传参的格式是什么样的?
    如果是 {xxx:xx} 还算好, 如果是 jsonStr = {xxx:xx} 这就有点.....
    af463419014
        18
    af463419014  
       2017-06-20 15:37:17 +08:00
    参考下业界的做法吧,比如 kylin 用的就是 json,http://kylin.apache.org/docs20/howto/howto_use_restapi.html
    其他开源框架的也可以看看
    MarcoQin
        19
    MarcoQin  
       2017-06-20 15:44:18 +08:00
    所以楼主得说得更清楚一点吧= =比如是 GET 还是 POST。
    一般 POST 方法的话,按照一般的约定的话,要么 body 传 json 要么直接 form 表单,也没啥- -
    要是 GET 然后像 #15 说的这样 http://balabala?jsonstr={json}这样的话也太蛋疼了……
    wangxiaoer
        20
    wangxiaoer  
       2017-06-20 15:57:45 +08:00
    真是醉了,楼主说的不够清楚吗?

    楼主应该不是埋怨返回 json,而是发起请求的时候要求把参数封装成 json。

    原来:/api?x=1&y=2

    现在:/api?jsonstr={x:1,y:2}

    我是看不出 get 请求下这有个鸡毛的意义,有个鸡毛的所谓统一性。
    nanlong
        21
    nanlong  
       2017-06-20 17:11:20 +08:00
    json 和 form 应该都支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2977 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 03:17 · PVG 11:17 · LAX 20:17 · JFK 23:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.