Kam*_*mal 41 architecture web-services web-applications web
我知道这是一个老问题,必须已经回答了数百次,但我还没有找到满意的回答.
我正在创建一个应用程序,将由其他应用程序(移动/网络)用于获取数据.现在我有两个选择:
在任何客户端以指定格式(SOAP/REST)提供数据的情况下,Web服务看起来更复杂,我的应用程序将解析请求并返回客户端请求的数据.如何使用数据不是我的应用程序的问题.
我的问题是,一个简单的Web应用程序可以通过XML格式接受请求并使用XML响应进行响应.直觉是网络服务将是一种更好的方式来进行这种服务,我们不确定谁将使用它.但是,在简单的Web应用程序上使用Web服务有什么特别的优势吗?
Jee*_*wes 39
如果我们认为术语,我认为这是主要问题.
Web服务是指通过某种Web界面以任何格式(XML/JSON等)提供数据的软件.该接口可以称为API(应用程序编程接口).REST和SOAP是设计API的方法.
应用程序是使用Web服务提供的此API的软件.
换句话说,Web服务是"服务器",应用程序是"客户端".通常服务器服务于机器,客户端服务于用户.
因此,无论如何,您选择构建系统,我会将提供数据的部分称为"Web服务",将使用数据的部分称为"应用程序"(或"Web应用程序",如果这样).
在您的情况下,您正在构建一个Web服务,为多个应用程序提供XML格式的数据.所以我的答案是:构建你已经构建的东西并称之为web服务.
Buh*_*ica 18
在较低级别,Web应用程序和Web服务有点相同.它们都通过http(s)进行操作.SOAP只是一个定义良好的XML版本.REST有点像HTTP.如果您愿意,可以使Web应用程序看起来像Web服务,反之亦然.
主要区别在于基于您使用的平台的内部开发选项.例如,如果您使用的是Visual Studio,那么添加WCF服务应用程序将为您提供一个默认面向WCF的项目.但是,选择任何其他应用程序类型不会阻止您添加Web服务.
由于以下原因,使用SOAP通常比普通的旧xml更好:
您的用户将会期待它,并且可能已经知道如何阅读它.
您的用户的开发环境可能会了解所有关于SOAP的知识,并且能够开箱即用地解释它.(如果您提供WSDL文件,那么许多用户将能够在几秒钟内使用脚本生成您的类.)
您的消息更有可能被明确定义.我正在研究一个项目,而另一方已定义了他们自己的随机XML结构,这是一个噩梦.我从来不知道会发生什么,并且它们的不同消息类型之间几乎没有一致性.至少如果他们同意遵守SOAP,那么我可能会更容易解释他们的消息.
Joh*_*ers 18
如果您的应用程序不需要用户界面,则将其设为Web服务.如果需要用户界面,则使用Web应用程序.
我的问题是,一个简单的Web应用程序可以通过XML格式接受请求并使用XML响应进行响应.
这是一个Web服务.我认为这是一个术语问题.除了使用Web服务之外,您无法解决这个问题,无论是基于SOAP还是基于SOAP都取决于您,但是如果您要以XML格式向客户端传递数据,以响应XML请求,那就是Web服务.
我怀疑你要问的是你是否应该使用RESTful Web服务或基于SOAP的复杂方法.对我来说,答案取决于"服务"中需要多少功能.
肥皂
如果您的服务具有许多功能,而不是java和/或Visual Studio的用户更愿意导入您的WSDL文件并将您的服务用作为其完成所有XML解析的对象,那么SOAP就是答案.
休息
如果您只有一些函数,具有非常基本的输入参数和响应数据,那么SOAP可能过度.
MySite.com/Add/5/3
Run Code Online (Sandbox Code Playgroud)
要么
MySite.com/GetStockSymbol/Facebook
Run Code Online (Sandbox Code Playgroud)
要么
MySite.com/GetWeather/Paris/France
Run Code Online (Sandbox Code Playgroud)
小智 6
我认为这可以帮助您解决困惑
业界有两种主要的WEB用例
摘自http://coder2design.com/java-interview-questions/
我问了这个问题超过3年,此后桥下流了很多水。我已经处理了数十个Web应用程序,并创建了数百个Web服务。所以我想在这里回答我自己的问题很有意义。
当我问这个问题时,我面临的挑战是我对术语应用程序和服务感到困惑(请注意,Web是Web应用程序和Web服务中的常见元素)。顾名思义,应用程序本身就是应用程序,而服务则是为他人服务。除非有人要使用服务,否则服务可能没有任何意义。它可以服务一个或多个应用程序或服务。
现在,如果我看看我的问题
我正在创建一个应用程序,其他应用程序(移动/网络)将使用该应用程序来获取数据。现在,我有2个选项:1.将我的应用程序创建为简单的Web应用程序。2.创建Web服务。
我想告诉自己,“伙计!如果有一个实体接受请求并返回数据,那么您正在谈论服务。” 因为我不担心这些数据会发生什么?谁会使用它?如何显示?
我正在接受请求并返回数据。现在,我该怎么做是实现的一部分。我可能会使用SOAP或REST。我可能使用Jersey或Spring MVC / REST,或者可能是一个简单的servlet,它接受请求并以JSON或XML或String或任何其他所需格式返回数据。
| 归档时间: |
|
| 查看次数: |
62394 次 |
| 最近记录: |