素材牛VIP会员
为什么很多第三方接口,都改成了基于http,直接传递json数据的方式来代替webservice?
 黄***艺  分类:Java代码  人气:1904  回帖:12  发布于6年前 收藏

曾经不同系统间交互问题时,总是优先考虑webserivce,现在看到除了一些老牌的公司,比如amazonk对众的接口还是webservice的方式,其他很多国内新项目的接口都开始转向直接传json的方式。我知道的优势之一,就是webservice的消息体肯定比json这种方式要大。请问,除此之外,设计这些对众接口的时候,还有什么其他的考虑吗?

讨论这个帖子(12)垃圾回帖将一律封号处理……

Lv1 新人
袜***了 PHP开发工程师 6年前#1

编程语言对json的自然支持也是一个原因。比如json字符串可以自然的变成javascript对象操作,反过来也一样。

Lv2 入门
青***f 页面重构设计 6年前#2

REST就是答案

Lv6 码匠
小***6 JS工程师 6年前#3

实在是大赞

Lv3 码奴
ba***pc JAVA开发工程师 6年前#4

json解析比较简单,在js或者php很容易就可以解析成对象,易于操作

Lv6 码匠
坐***来 技术总监 6年前#5

我觉得两个原因,rest最开始是为页面服务的。js原生支持json,同时json是kv型数据,用nosql更好

Lv5 码农
mo***99 产品经理 6年前#6

異質系統的通訊中只關心兩個問題

物件模型以及資料

Web Service使用的SOAP可以自描述物件模型
可是使用xml來傳遞資料實在是耗費太多資源了

這個時候,JSON的輕量優點就突顯出來
至於物件模型
你都要用我的服務,看一下文件不過份吧

Lv1 新人
青***8 页面重构设计 6年前#7

用过Web Service,感觉:
过于复杂庞大,通过xml来传数据的方式导致大量的验证、类型分析、异常处理,性能损耗很大,并且开发也过于复杂。xml相关的库也很大,部署成问题。
而其提供的所谓“自动发现”也由于复杂等等原因很难使用;安全性也非常复杂,各种语言、框架的实现想要兼容
也要费一番力气。

面向一般开发者的API,显然应该考虑简单易用。而且公开到Web环境中,性能也很重要。JSON这种适应性超强的格式受欢迎也就很正常了。

Lv4 码徒
贼***9 CEO 6年前#8

JSON确实是一种很好的交换数据结构。
除了这个之外,javascript原生支持json解析,且解析起来很简单。这个很重要,因为http接口大部分是给页面的Javascript解析使用的。然后为了保持一套接口,app代码也使用这个json接口。所以就流行了起来。

Lv1 新人
qi***hu 职业无 6年前#9

个人经验来说吧,WebService 很复杂,调用庞大,哪怕像是 .net 这种原生提供相关支持库的工具用起来也多少力不从心,而且 XML 人手阅读哪怕有语法高亮也是吃力,姑不论效率问题了。

JSON 相比之下轻量得多,可谓简陋,但容易阅读许多原生不支持 WebService 的语言和工具都提供了 JSON 支持。简单的语法也带来了更好的效率。

前面有人提到类型系统的问题。XML 是强类型的,在整个解析过程中很多时间都被花在类型检测上了;JSON 则是弱类型,完全依赖两端代码共同遵守同一界面合约(contract)来保障。前者适合于存在按类型检索重载的场合,一般适用于 CXX、C#、Java 这类强类型的语言;而后者则更适用于 Javascript、Python、Objective-C 这类弱类型语言。

不过 JSON 也并非不可指定类型。通过合理的上层协议便可实现,再不需要与 Javascript 直通的时候也可以对语法小修改来实现。举例:

MTSession {
    id: MongoIdentifier {
        id: "1225…"
    },
    uid: 2024,
    flags: /* Dictionary */ {
        authSaved: true,
    }
}
Lv6 码匠
許***愿 Linux系统工程师 6年前#10

webservice?没听说过
我就知道json

上一页12下一页
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取