我需要对网络服务的一些基本理解进行更具体的了解 与php一起
我想知道,如果有一个wsdl文件用于创建Web服务,或者只是对想要访问web服务的第三方有用的东西是必要的吗? 此外,它是在.net环境中自动生成的,但对于php来说,它有点困难。
我有什么选择?
我所追求的是在我的手机上创建一个jm2ee应用程序,该应用程序会不时地向web服务发送数据。 我读到某个地方,当没有wsdl文件时你必须提供参数。 这是什么意思?和/或有什么影响呢?
谢谢你,理查德
答案 0 :(得分:5)
我想知道,如果是的话 有一个wsdl文件的neccasary 创建一个Web服务
不,没有必要(至少,不是在PHP中):它有助于其他人知道如何访问您的webservice (应该使用哪些方法,对象......) ,但即使它不导出WSDL
,也可以调用WS对于PHP,是的,获取WSDL 有点困难(许多类不生成它们:-();但是,你可以用另一个工具生成它(有工具)在Eclipse中编写WSDL文件,例如)。
有PEAR::Soap
能够从PHP代码生成WSDL(但你必须写下许多行代码才能正确) - 考虑到PHP 5中包含一个类来使用SOAP ,无论如何,我不建议使用这个。
有关更多信息,您可以查看:
SoapServer
;特别是,如果你查看SoapServer::__construct
的文档,你会发现它可以在WSDL和非WSDL模式下工作Zend_Soap
答案 1 :(得分:3)
如果您同时创建客户端和Web服务,那么就没有特别需要使用SOAP,WSDL或任何爵士乐。
只需使用网络的基础知识:客户端可以使用GET获取信息,然后使用POST发送信息。您可以按照自己喜欢的方式格式化数据,但JSON和XML是常用且定义明确的方法。
如果您希望获得API设计的灵感,请查看一些常用的示例:
这足以让你开始,但如果你对设计理念感到好奇,你可以阅读Representational State Transfer或REST。
答案 2 :(得分:1)
WSDL文件以机器可读(XML)格式提供Web服务提供的方法(和方法的args)。如果您知道方法和参数是什么,那么您不需要WSDL文件 - 尽管如果您愿意,WSDL非常适合作为使Web服务公共接口更加“松散”的手段。
据我所知,PHP库没有为您自动生成WSDL文件的功能。
答案 3 :(得分:0)
Web服务支持内置于php5中,您最好的起点是documentation。
答案 4 :(得分:0)
有些消息来源会使用术语“webservice”作为SOAP的同义词。这是用词不当。 SOAP是一种特殊的协议 - 它是一种方式来创建Web服务。还有其他技术可用。通常,SOAP是Java和.net中的首选标准,但它在这个领域之外是不合适的。如果您有选项,我强烈建议您考虑xml-rpc(哪个更简单并且对php有更好的直接支持)或基于http的服务(也称为基于REST)。