Web API和Web服务之间有什么区别吗?或者他们是一样的吗?
我有一个Windows服务解决方案,我正在尝试在VS2010中向Hermes(Opensource ebms消息服务器)Web服务添加服务引用.
我可以使用它的URL找到Web服务,但是当我尝试填充服务引用时,我在Visual Studio中遇到以下错误:
Error 8 Custom tool error: Failed to generate code for the service reference 'testService'. Please check other error and warning messages for details. C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 6 Custom tool warning: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:portType[@name='EbmsStatusQuery']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://service.ebms.edi.cecid.hku.hk/']/wsdl:binding[@name='EbmsSoapHttpStatusQuery'] C:\Users\Admin\documents\visual studio 2010\Projects\MyProject\MyProject.MessageHandler\Service References\testService\Reference.svcmap 1 1 MyProject.MessageHandler
Warning 7 Custom tool warning: Cannot import wsdl:port …Run Code Online (Sandbox Code Playgroud) 我有一个HTML页面,上面有一个按钮.当我点击该按钮时,我需要调用Rest Web Service API?我试着到处搜索.毫无头绪.有人可以给我一个领导/ Headstart吗?非常感谢
我想在Python中使用基于WSDL SOAP的Web服务.我查看了Dive Into Python代码,但SOAPpy模块在Python 2.5下不起作用.
我已经尝试使用肥皂水其中工程部分,但与某些类型的中断(suds.TypeNotFound:类型未找到:"项目").
我也看过Client,但这似乎不支持WSDL.
我看过ZSI,但看起来很复杂.有没有人有任何示例代码?
WSDL是https://ws.pingdom.com/soap/PingdomAPI.wsdl,可以与PHP 5 SOAP客户端一起使用.
我将学习RESTful Web服务(最好说我必须这样做,因为它是CS硕士学位课程的一部分).
我在维基百科上阅读了一些信息,我还在Sun Developer Network上阅读了一篇关于REST的文章,我发现这不是一项简单的技术,有一些用于构建RESTful应用程序的特殊框架,而且它经常与SOAP Web服务和程序员应该了解何时使用SOAP以及何时REST可能是很好的方法.
我记得几年前SOAP很受欢迎(时尚?),而'SOAP'项目必须出现在每个好的简历中.但在实践中,它很少用于实现非常简单的目的.
在我看来,REST是另一个"时尚的最后一句话"(或者我完全错了,因为我在实践中从未见过REST).
你能给我一些例子,说明应该使用REST吗?为什么我们不能在没有REST的情况下做同样的事情(或者为什么我们应该花更多的时间在没有REST的情况下做同样的事情)?
UPD:不幸的是,在第一次评论中,我看不到任何可以引起我注意的具体论点.让我觉得REST是很棒的技术!
我希望看到这样的答案:
我正在开发另一个复杂的HelloWorld应用程序,我们需要传输大量/微小的数据,我向我的同事提出了REST解决方案:
- 哦,该死的!Jonny,我们当然应该使用REST来实现这个应用程序!
- 是的,Billy,我们可以使用REST,但我们最好使用SOAP.相信我,因为我对开发HelloWorld应用程序有所了解.
- 但SOAP是上个世纪的老式技术,我们可以使用更好的技术.
- 比利,你准备花3天时间试验REST吗?我们可以在2小时内使用SOAP做到这一点.
- 是的,我确信我们将花费更多的时间来实现相同的安全性/性能/ /可扩展性/其他任何与SOAP相关的东西.我确信HelloWorld应用程序应该只使用REST开发.
这是我使用Eclipse创建第一个Axis2 Web服务时遇到的错误.在我编写类之后,我使用Apache Axis2创建了Web服务.当我在eclipse中单击启动服务器按钮时,它会显示一条错误消息:
无法在localhost上发布Tomcat v6.0 Server的服务器配置.
多个上下文的路径为"/ FirstApache".
FirstApache是我之前创建的动态Web项目.我从Web服务向导的配置部分中选择了正确的Web项目.
我怎样才能解决这个问题?
我的POST方法如下所示:
@POST
@Consumes({"application/json"})
@Path("create/")
public void create(String param1, String param2){
System.out.println("param1 = " + param1);
System.out.println("param2 = " + param2);
}
Run Code Online (Sandbox Code Playgroud)
当我在Netbeans中创建Jersey客户端时,调用post方法的方法如下所示:
public void create(Object requestEntity){
webResource.path("create").type(MediaType.APPLICATION_JSON).post(requestEntity);
}
Run Code Online (Sandbox Code Playgroud)
运行此测试时:
@Test
public void hello(){
String json = "{param1=\"hello\",param2=\"hello2\"}";
this.client.create(json);
}
Run Code Online (Sandbox Code Playgroud)
它在服务器中提供以下输出:
INFO: param1 = {param1="hello",param2="hello2"}
INFO: param2 =
Run Code Online (Sandbox Code Playgroud)
我需要更改什么才能使参数给出正确的值?
我们计划用spring 4.0.6版本创建一个新的应用程序.我们使用可以返回"XML"或"JSON"的控制器.在以前的项目,我们使用JAX-RS API成功实施新泽西州和Spring支持REST,但是从学长读了几篇文章和建议后,他们说,弹簧提供了相当不错的REST支持.
如果我在不使用JAX-RS和Jersey的情况下使用Spring REST支持,那些让我感到困惑的一些要点是:
如何在Spring MVC中完成编组和解组?
编组或解组是否需要使用jax-rs.
如果弹簧自动处理编组和解编,那么它如何知道xmlRootElements.
我仍然感到困惑,如果Spring证明了REST的非常好的支持那么为什么人们仍然会使用Jersey进行REST?真的想了解更多细节.
如果我说错了,请忽略它.对示例的解释非常有用.
提前致谢!!
我正在设计一个RESTful Web服务,需要用户访问,还需要其他Web服务和应用程序访问.所有传入的请求都需要进行身份验证.所有通信都通过HTTPS进行.用户身份验证将基于身份验证令牌工作,通过将用户名和密码(通过SSL连接)POST 到服务提供的/ session资源获取.
对于Web服务客户端,客户端服务后面没有最终用户.请求由计划的任务,事件或一些其他计算机操作启动.连接服务列表事先已知(显然,我猜).我该如何验证来自其他(网络)服务的这些请求?我希望身份验证过程尽可能简单地实现这些服务,但不以安全为代价.对于这样的场景,标准和最佳实践是什么?
我能想到的(或者有人向我建议的)选项:
让客户服务使用"假的"用户名和密码,并以与用户相同的方式对其进行身份验证.我不喜欢这个选项 - 它感觉不对劲.
为客户端服务分配永久应用程序ID,也可能是应用程序密钥.据我所知,这与用户名+密码相同.使用此ID和密钥,我可以验证每个请求,或创建身份验证令牌以验证进一步的请求.无论哪种方式,我都不喜欢这个选项,因为任何能够获得应用程序ID和密钥的人都可以冒充客户端.
我可以在以前的选项中添加IP地址检查.这将使执行虚假请求变得更加困难.
客户证书.设置我自己的证书颁发机构,创建根证书,并为客户端服务创建客户端证书.但是,有几个问题浮现在脑海中:a)如何在没有证书的情况下允许用户进行身份验证,以及b)从客户端服务的角度来看,这种情况有多复杂?
还有别的 - 那里必须有其他解决方案吗?
我的服务将运行在Java上,但我故意遗漏了有关它将构建的具体框架的信息,因为我对基本原则更感兴趣,而不是对实现细节更感兴趣 - 我认为最好的解决方案是无论底层框架如何,都可以实现.但是,我对这个主题有点缺乏经验,所以对实际实现的具体提示和示例(例如有用的第三方库,文章等)也将非常感激.
authentication rest web-services restful-authentication client-certificates
web-services ×10
rest ×5
java ×3
soap ×3
.net ×1
architecture ×1
axis ×1
c# ×1
eclipse ×1
html ×1
javascript ×1
jax-rs ×1
jersey ×1
python ×1
spring ×1
spring-mvc ×1
terminology ×1
tomcat ×1