后台提供接口,有要求把多个参数转换成 json 字符串传过去的吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hydyy

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

  •  
  •   hydyy Jun 20, 2017 3334 views
    This topic created in 3235 days ago, the information mentioned may be changed or developed.

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

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

    好郁闷啊!

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

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

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

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

    传一个 jsonstr 是指什么? get 参数里面 jsOnstr={json} ?
    hotStrip
        16
    hotStrip  
       Jun 20, 2017
    @hydyy 那倒是,有时候我们这就会因为传参方式出错
    zpf124
        17
    zpf124  
       Jun 20, 2017
    这就看具体情况了。

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


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

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

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

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

    我是看不出 get 请求下这有个鸡毛的意义,有个鸡毛的所谓统一性。
    nanlong
        21
    nanlong  
       Jun 20, 2017
    json 和 form 应该都支持
    About     Help     Advertise     Blog     API     FAQ     Solana     959 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 72ms UTC 20:05 PVG 04:05 LAX 13:05 JFK 16:05
    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