标签: web-services

SOAP与REST(差异)

我读过有关SOAP和REST作为Web服务通信协议之间差异的文章,但我认为REST优于SOAP的最大优势是:

  1. REST更加动态,无需创建和更新UDDI.

  2. REST不限于XML格式.REST Web服务可以发送纯文本,JSON和XML.

但SOAP更标准化(Ex;安全性).

那么,我在这些方面是否正确?

rest soap web-services http definition

1206
推荐指数
10
解决办法
108万
查看次数

REST API错误返回良好实践

在从REST API返回错误时,我正在寻找有关良好实践的指导.我正在开发一个新的API,所以我现在可以采取任何方向.我的内容类型目前是XML,但我计划将来支持JSON.

我现在正在添加一些错误情况,例如客户端尝试添加新资源但已超出其存储配额.我已经使用HTTP状态代码处理某些错误情况(401用于身份验证,403用于授权,404用于普通错误请求URI).我查看了有福的HTTP错误代码,但400-417范围似乎没有报告特定于应用程序的错误.所以起初我很想用200 OK和特定的XML有效载荷返回我的应用程序错误(即付给我们更多,你将得到你需要的存储空间!)但是我停下来思考它并且似乎是肥皂(/耸耸肩恐怖).此外,感觉就像我将错误响应分成不同的情况,因为有些是http状态代码驱动而其他是内容驱动.

那么行业建议是什么?好的做法(请解释原因!)以及从客户端pov中,REST API中的哪种错误处理使客户端代码的生活更轻松?

rest web-services http

612
推荐指数
10
解决办法
26万
查看次数

了解REST:动词,错误代码和身份验证

我正在寻找一种方法来在我的基于PHP的Web应用程序,数据库和CMS中围绕默认函数包装API.

我环顾四周,发现了几个"骨架"框架.除了我的问题的答案,还有Tonic,我喜欢的REST框架,因为它非常轻量级.

我最喜欢REST,因为它简单,并且希望基于它创建一个API架构.我试图了解基本原则并且还没有完全理解它.因此,一些问题.

我理解对吗?

假设我有一个资源"用户".我可以像这样设置一些URI:

/api/users     when called with GET, lists users
/api/users     when called with POST, creates user record
/api/users/1   when called with GET, shows user record
               when called with PUT, updates user record
               when called with DELETE, deletes user record
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是RESTful架构的正确表示吗?

我需要更多的动词

理论上创建,更新和删除可能就足够了,但在实践中我需要更多的动词.我意识到这些内容可以嵌入到更新请求中,但它们是具有特定返回代码的特定操作,我不想将它们全部放入一个操作中.

用户示例中的一些想法是:

activate_login
deactivate_login
change_password
add_credit
Run Code Online (Sandbox Code Playgroud)

我将如何表达RESTful URL架构中的操作?

我的直觉是对像这样的URL进行GET调用

/api/users/1/activate_login 
Run Code Online (Sandbox Code Playgroud)

并期望返回状态代码.

但是,这偏离了使用HTTP动词的想法.你怎么看?

3.如何返回错误消息和代码

REST的美丽很大一部分源于其使用标准HTTP方法.如果出错,我会发出一个包含3xx,4xx或5xx错误状态代码的标头.对于详细的错误描述,我可以使用正文(对吗?).到现在为止还挺好.但是,传输专有错误代码的方法是什么,该错误代码在描述错误时更详细(例如"无法连接到数据库"或"数据库登录错误")?如果我把它和信息一起放入体内,我必须在事后解析它.这种东西有标准的标题吗?

4.如何进行身份验证

  • 遵循REST原则的基于API密钥的身份验证是什么样的?
  • 在验证REST客户端时,是否有强烈反对使用会话的优点,除了它是公然违反REST原则?:)(这里只有半开玩笑,基于会话的身份验证可以很好地与我现有的基础设施配合使用.)

rest web-services

593
推荐指数
9
解决办法
13万
查看次数

如何在Android上调用SOAP Web服务

我在查找如何使用Android调用标准SOAP/WSDL Web服务方面遇到很多麻烦.我能找到的所有文件都是非常复杂的文档和对"kSoap2"的引用,然后是一些关于使用SAX手动解析它的一些内容.好的,这很好,但是它是2008年,所以我认为应该有一些很好的库来调用标准的Web服务.

Web服务基本上是在NetBeans中创建的.我想有IDE支持生成管道类.我只需要最简单/最优雅的方式来从基于Android的手机联系基于WSDL的Web服务.

java android soap wsdl web-services

545
推荐指数
21
解决办法
41万
查看次数

HTTP GET请求的最大长度?

HTTP GET请求的最大长度是多少?是否存在定义的响应错误,如果收到GET请求超过此长度,服务器可以/应该返回?

更新:如标签中所示,这是在Web服务API的上下文中,尽管看到浏览器限制也很有趣.

web-services http

467
推荐指数
5
解决办法
48万
查看次数

SOAP或REST for Web Services?

REST是一种更好的Web服务方法还是SOAP?或者它们是针对不同问题的不同工具?或者这是一个细致入微的问题 - 也就是说,在某些领域比另一个稍微好一点,等等?

赏金编辑:

现在,差不多三年后,我想再次提出这个问题 - 提供奖励以鼓励深入回答.我特别感谢有关这些概念及其与PHP-universe和现代高端Web应用程序的关系的信息.

xml rest soap web-services

381
推荐指数
21
解决办法
12万
查看次数

WCF和ASMX Web服务之间有什么区别?

我对WCF和ASMX Web服务感到困惑.我在早期阶段使用了很多Web服务,现在引入了一个名为WCF的新东西.我仍然可以创建作为Web服务的WCF.我认为WCF会有更多东西.

WCF和Web服务之间有什么区别?什么时候应该使用?

wcf web-services asmx

373
推荐指数
5
解决办法
34万
查看次数

在Linux中使用cURL进行HTTP POST和GET

我在Windows上用ASP.NET编写了一个服务器应用程序,它提供了一个Web服务.

如何使用cURL在Linux中调用Web服务?

linux curl web-services

348
推荐指数
2
解决办法
92万
查看次数

Python REST(Web服务)框架的建议?

是否有一个列表,其中包含不同的基于Python的REST框架的建议,以便在服务器端使用以编写自己的RESTful API?优选有利有弊.

请随时在此处添加推荐.:)

python rest frameworks web-services

321
推荐指数
11
解决办法
24万
查看次数

构建iOS网络应用程序的最佳架构方法(REST客户端)

我是一名具有一定经验的iOS开发人员,这个问题对我来说非常有趣.我在这个主题上看到了很多不同的资源和材料,但是我仍然感到困惑.iOS网络应用程序的最佳架构是什么?我的意思是基本的抽象框架,模式,它适合每个网络应用程序,无论它是一个只有少量服务器请求的小应用程序还是复杂的REST客户端.Apple建议将其MVC用作所有iOS应用程序的基本架构方法,但MVC现在的MVVM模式都不能解释网络逻辑代码的放置位置以及如何组织它.

我是否需要开发类似MVCS(Sfor Service)的东西,并在此Service层放置所有API请求和其他网络逻辑,这在视角可能真的很复杂?在做了一些研究后,我找到了两种基本方法.这里建议为Web服务的每个网络请求API(如LoginRequest类或PostCommentRequest类等)创建一个单独的类,它们都继承自基本请求抽象类AbstractBaseRequest,另外还创建了一个封装了常见网络代码的全局网络管理器.其他首选项(可能是AFNetworking自定义或RestKit调优,如果我们有复杂的对象映射和持久性,甚至是使用标准API的自己的网络通信实现).但这种方法对我来说似乎是一个开销.另一种方法是在第一种方法中使用一些单例API调度程序或管理器类,但不是为每个请求创建类,而是将每个请求封装为此管理器类的实例公共方法,如:fetchContacts,loginUser方法等.那么,什么是最好的和正确的方法?还有其他有趣的方法我还不知道吗?

我是否应该为所有这些网络内容创建另一个层,例如Service,NetworkProvider层或其他任何在我的MVC架构之上,或者该层应该集成(注入)到现有MVC层中,例如Model

我知道存在很好的方法,或者像Facebook客户端或LinkedIn客户端这样的移动怪物如何应对指数级增长的网络逻辑复杂性?

我知道这个问题没有确切而正式的答案.这个问题的目标是从经验丰富的iOS开发人员那里收集最有趣的方法.最佳建议方法将被标记为已接受并获得声誉奖励,其他方式将被赞成.这主要是一个理论和研究问题.我想了解iOS中网络应用程序的基本,抽象和正确的架构方法.我希望有经验的开发人员提供详细解释.

networking web-services objective-c ios ios7

314
推荐指数
5
解决办法
6万
查看次数

标签 统计

web-services ×10

rest ×5

http ×3

soap ×3

android ×1

asmx ×1

curl ×1

definition ×1

frameworks ×1

ios ×1

ios7 ×1

java ×1

linux ×1

networking ×1

objective-c ×1

python ×1

wcf ×1

wsdl ×1

xml ×1