Bonjour,
Je travaille sur la création d'un webservice SOAP en PHP.
Pour générer le WSDL, j'ai utilisé l'outil wsdl editor fournis avec eclipse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/NewWSDLFile/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="NewWSDLFile" targetNamespace="http://www.example.org/NewWSDLFile/"> <wsdl:types> <xsd:schema targetNamespace="http://www.example.org/NewWSDLFile/"> <xsd:complexType name="CompteRenduDemande"> <xsd:sequence> <xsd:element name="demande" type="tns:Demande"></xsd:element> <xsd:element name="dateAcquittement" type="xsd:dateTime"></xsd:element> <xsd:element name="priorite" type="xsd:int"></xsd:element> <xsd:element name="statut" type="xsd:boolean"></xsd:element> <xsd:element name="signature" type="xsd:string"></xsd:element> <xsd:element name="codeErreur" type="tns:Erreur"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Demande"> <xsd:sequence> <xsd:element name="source" type="xsd:string"></xsd:element> <xsd:element name="numeroDemande" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Erreur"> <xsd:sequence> <xsd:element name="codeErreur" type="xsd:string"></xsd:element> <xsd:element name="libelleErreur" type="xsd:string"></xsd:element> <xsd:element name="estPermanente" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:schema> </wsdl:types> <wsdl:message name="CompteRenduOperationRequest"> <wsdl:part name="input" type="tns:CompteRenduDemande"/> </wsdl:message> <wsdl:message name="CompteRenduOperationResponse"> <wsdl:part name="output" type="xsd:string"/> </wsdl:message> <wsdl:portType name="RetourDroitsADSL"> <wsdl:operation name="CompteRenduOperation"> <wsdl:input message="tns:CompteRenduOperationRequest" name="in"/> <wsdl:output message="tns:CompteRenduOperationResponse" name="out"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="RetourDroitsADSLBinding" type="tns:RetourDroitsADSL"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="CompteRenduOperation"> <soap:operation soapAction="http://www.example.org/NewWSDLFile/CompteRenduOperation"/> <wsdl:input name="in"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="out"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="RetourDroitsADSL"> <wsdl:port binding="tns:RetourDroitsADSLBinding" name="RetourDroitsADSL"> <soap:address location="http://localhost/experiment/CANAL/soap-RetourDroitsADSL/server/server.php"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
Je l'ai testé (PHP et SoapUI), ça fonctionne bien, le seul problème c'est que je ne sais pas forcément pourquoi.
Par exemple, il y a pas mal d'attributs dont j'ignore le rôle :
xmlns:tns, targetNamespace, xsd:schema (qui utilisent des urls bidon avec example.org).
Pareil pour les bindings, les portType et les messages.
Est-ce que quelqu'un pourrait m'éclairer sur tout ça, pour le moment j'ai l'impression d'être en face d'une grosse usine à gaz soviétique... j'ai l'impression de faire du Java, pas du PHP !
Merci
Partager