Π’ соврСмСнной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм интСграция ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ прилоТСниями ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнтарий для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, срСди ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ особоС мСсто Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π²Π΅Π±-сСрвисы. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом взаимодСйствия Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ SOAP являСтся Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .wsdl. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ слуТит своСобразным ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ паспортом сСрвиса, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, структуру ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ связи.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ администраторы часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π°Π½Π°Π»ΠΈΠ·Π° этого Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ настройкС Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ошибок ΠΎΠ±ΠΌΠ΅Π½Π°. Π€Π°ΠΉΠ» гСнСрируСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ 1Π‘ автоматичСски Π½Π° основС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ устройства критичСски Π²Π°ΠΆΠ½ΠΎ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. Π‘Π΅Π· ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ описания интСрфСйсов внСшняя систСма просто Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ структуру WSDL, способы Π΅Π³ΠΎ получСния ΠΈ Π½ΡŽΠ°Π½ΡΡ‹ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ спСцифичСских Π·Π°Π΄Π°Ρ‡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΊΠ°ΠΊΠΈΠ΅ β€” Π·Π° привязку ΠΊ сСтСвым адрСсам. Π­Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ SOAP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ сСрвСрами.

НазначСниС ΠΈ Ρ€ΠΎΠ»ΡŒ WSDL Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ SOAP

АббрСвиатура WSDL Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Web Services Description Language. По сути, это XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Π±-сСрвиса. Π’ контСкстС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ этот Ρ„Π°ΠΉΠ» являСтся мостом ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ внСшним ΠΌΠΈΡ€ΠΎΠΌ. Он сообщаСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ доступны для Π²Ρ‹Π·ΠΎΠ²Π°, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚.

Когда внСшняя систСма (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сайт Π½Π° PHP ΠΈΠ»ΠΈ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· 1Π‘, ΠΎΠ½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ WSDL-описаниС. На основС этого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ прокси-классы ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ SOAP-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Ρ‹. Если описаниС составлСно Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ»ΠΈ содСрТит ошибки Ρ‚ΠΈΠΏΠΎΠ², взаимодСйствиС станСт Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ этого Ρ„Π°ΠΉΠ»Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π°.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ WSDL Π½Π΅ содСрТит бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. Он лишь описываСт интСрфСйс. Π‘Π°ΠΌΠ° Π»ΠΎΠ³ΠΈΠΊΠ° выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ resides Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Π΅Π±-сСрвиса Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘. Π€Π°ΠΉΠ» описания слуТит ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для согласования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ адрСсации.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Π΅Π±-сСрвиса Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвСр, 1Π‘ динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ WSDL ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ?wsdl Π² URL. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Π½Π° диск статичСский Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Ρ€Π΅Ρ‚ΡŒ, Ссли Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° WSDL Ρ„Π°ΠΉΠ»Π°: основныС элСмСнты

Π€Π°ΠΉΠ» описания Π²Π΅Π±-сСрвиса ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ спСцификациСй W3C. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ дСлится Π½Π° Π΄Π²Π΅ логичСскиС части: абстрактноС описаниС интСрфСйса ΠΈ конкрСтная привязка ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ 1Π‘ эти сСкции Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски, Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ Π² Π½ΠΈΡ… ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° описываСт Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π΄Π΅ΡΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ слоТныС структуры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Вторая Ρ‡Π°ΡΡ‚ΡŒ описываСт сообщСния (messages), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ². Π”Π°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ опрСдСлСния ΠΏΠΎΡ€Ρ‚Π° (portType), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹), доступныС для Π²Ρ‹Π·ΠΎΠ²Π°.

Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ структуру сСкция binding ΠΈ service. Π’ Π½ΠΈΡ… указываСтся, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ SOAP over HTTP) ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ физичСскому адрСсу (URL) доступСн сСрвис. ИмСнно эту ссылку ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π² настройках Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

  • πŸ“„ types β€” сСкция, содСрТащая опрСдСлСния Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° языкС XML Schema (XSD), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² сообщСниях.
  • πŸ“© message β€” описаниС структуры сообщСния, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.
  • βš™οΈ portType β€” абстрактный Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Π±-сСрвис, Π±Π΅Π· привязки ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ.
  • πŸ”— binding β€” конкрСтная рСализация ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ portType.

ПониманиС раздСлСния ΠΌΠ΅ΠΆΠ΄Ρƒ абстрактным интСрфСйсом ΠΈ физичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. НапримСр, Ссли ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚ΠΈΠΏΠΎΠ², ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² структурС Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘. Если ошибка Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ binding β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² настройках Π²Π΅Π±-сСрвСра ΠΈΠ»ΠΈ URL.

πŸ“Š Как Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ WSDL Ρ„Π°ΠΉΠ»?
Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎ URL
Π­ΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽ ΠΈΠ· ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° 1Π‘
ΠŸΠΎΠ»ΡƒΡ‡Π°ΡŽ ΠΎΡ‚ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π°
Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽ сторонними ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ WSDL ΠΈΠ· 1Π‘

БущСствуСт нСсколько способов ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС Π²Π΅Π±-сСрвиса. Π‘Π°ΠΌΡ‹ΠΉ распространСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” использованиС HTTP-запроса ΠΊ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ сСрвису. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Π±-сСрвис Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π½Π° Π²Π΅Π±-сСрвСрС (IIS, Apache) ΠΈΠ»ΠΈ встроСнном Π²Π΅Π±-сСрвСрС 1Π‘.

Для получСния Ρ„Π°ΠΉΠ»Π° достаточно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ суффикс ?wsdl ΠΊ адрСсу ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. НапримСр, Ссли сСрвис доступСн ΠΏΠΎ адрСсу http://server/base/ws/MyService, Ρ‚ΠΎ описаниС получится ΠΏΠΎ адрСсу http://server/base/ws/MyService?wsdl. Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ XML-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .wsdl.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ β€” использованиС инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ сохранСния описания, ΠΎΠ΄Π½Π°ΠΊΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠ΅Π½Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ динамичСскиС настройки ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ алиасы ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ бСзопасности, примСняСмыС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π²Π΅Π±-сСрвСра.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ curl ΠΈΠ»ΠΈ wget для автоматичСского скачивания WSDL Π² скриптах развСртывания: curl http://server/base/ws/MyService?wsdl -o service.wsdl

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с HTTPS Π²Π°ΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ сСртификат сСрвСра Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ»ΠΈ клиСнтскоС ПО ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ описания, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π’ тСстовых срСдах часто ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ сСртификатов, Π½ΠΎ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ срСдС это нСдопустимо.

Ручная модификация ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ описания

Π₯отя ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ WSDL автоматичСски, Π² Ρ€Π΅Π΄ΠΊΠΈΡ… случаях трСбуСтся Π΅Π³ΠΎ ручная ΠΏΡ€Π°Π²ΠΊΠ°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для совмСстимости со спСцифичными ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ конструкции XML Schema, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ 1Π‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’Π°ΠΊΠΆΠ΅ ручная ΠΏΡ€Π°Π²ΠΊΠ° Π½ΡƒΠΆΠ½Π° ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ слоТных сцСнариСв ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запросов.

ΠŸΡ€ΡΠΌΠΎΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сгСнСрированного Ρ„Π°ΠΉΠ»Π° Π½Π΅ рСкомСндуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ любой ΠΏΠ΅Ρ€Π΅ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ сСрвиса измСнСния Π±ΡƒΠ΄ΡƒΡ‚ потСряны. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ написании внСшнСго ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трансформируСт ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π»Π΅Ρ‚Ρƒ. Однако для Ρ€Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ допустимо ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ пространство ΠΈΠΌΠ΅Π½ (namespace) ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’ 1Π‘ это ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· свойства Π²Π΅Π±-сСрвиса Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Бвойство URI пространства ΠΈΠΌΠ΅Π½ позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ Π² Ρ‚Π΅Π³Π΅ targetNamespace.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИзмСнСниС ΠΈΠΌΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² WSDL Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π±Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ измСнСния Π² ΠΊΠΎΠ΄Π΅ модуля 1Π‘ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС дСсСриализации. Π‘Π΅Ρ€Π²Π΅Ρ€ 1Π‘ Π½Π΅ смоТСт ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ входящий XML с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Если трСбуСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π΅ мСняя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π±Π°Π·Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ HTTP-сСрвисов ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с SOAP. Но Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ WSDL-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ строго описаны Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. "Π’Π΅Π½Π΅Π²Ρ‹Π΅" ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π΅ описанныС Π² WSDL, Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ 1Π‘ добавляСт прСфиксы ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ‚ΠΈΠΏΠΎΠ²?

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ автоматичСски добавляСт прСфиксы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Type_ ΠΈΠ»ΠΈ Enum_) ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² WSDL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² имСнования с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ словами XML ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π­Ρ‚ΠΎ стандартноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠΊΠ° сСриализации.

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сСриализация Π² 1Π‘

Одной ΠΈΠ· самых слоТных Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Π±-сСрвисами 1Π‘ являСтся ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ 1Π‘ (Число, Π”Π°Ρ‚Π°, Π‘Ρ‚Ρ€ΠΎΠΊΠ°, БправочникБсылка) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² Ρ‚ΠΈΠΏΡ‹ XML Schema. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π΄Π΅Π»Π°Π΅Ρ‚ это автоматичСски, Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ» прСобразования ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ошибок.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ 1Π‘ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ маппятся Π½Π° стандартныС XSD Ρ‚ΠΈΠΏΡ‹. НапримСр, Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ становится xsd:boolean, Π° число β€” xsd:decimal. Π‘Π»ΠΎΠΆΠ½Π΅Π΅ обстоит Π΄Π΅Π»ΠΎ со ссылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ пСрСчислСниями. Бсылка Π½Π° элСмСнт справочника часто пСрСдаСтся ΠΊΠ°ΠΊ строка (UUID ΠΈΠ»ΠΈ ΠΊΠΎΠ΄), Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ слоТная структура с полями.

Для слоТных структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π’Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ ЗначСния ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹, 1Π‘ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты Π² сСкции types. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»Π΅ структуры становится ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом XML. Π’Π°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»Π΅ΠΉ (минимальноС ΠΈ максимальноС количСство Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это контролируСтся ограничСниями minOccurs ΠΈ maxOccurs.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ Π’ΠΈΠΏ Π² WSDL (XSD) ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ сСриализации
Число xsd:decimal ΠœΠΎΠΆΠ΅Ρ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π² систСмы с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ
Π”Π°Ρ‚Π° xsd:dateTime ВсСгда пСрСдаСтся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ISO 8601 с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ часового пояса
Π‘Ρ‚Ρ€ΠΎΠΊΠ° xsd:string Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы ΡΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски
Π‘ΡƒΠ»Π΅Π²ΠΎ xsd:boolean ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ значСния true/false
БправочникБсылка ComplexType (структура) Часто пСрСдаСтся ΠΊΠ°ΠΊ структура с полями Ref, Description, Code

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ интСрфСйсов ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простыС Ρ‚ΠΈΠΏΡ‹ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² 1Π‘ "ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ" ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ€Π°Π·Π΄ΡƒΠ²Π°Π½ΠΈΡŽ WSDL ΠΈ ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡŽ парсинга Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Иногда цСлСсообразнСС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ строки JSON Π²Π½ΡƒΡ‚Ρ€ΠΈ строкового ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, хотя это ΠΈ отступаСт ΠΎΡ‚ чистоты SOAP.

πŸ’‘

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… β€” Π·Π°Π»ΠΎΠ³ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сСриализации. ВсСгда провСряйтС, ΠΊΠ°ΠΊ слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ 1Π‘ выглядят Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΌ XML послС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ WSDL.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ валидация WSDL описания

ПослС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΊΠΈ Ρ„Π°ΠΉΠ»Π° описания Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Π΅Π³ΠΎ коррСктности. БущСствуСт мноТСство ΠΎΠ½Π»Π°ΠΉΠ½-Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ΠΎΠ² XML ΠΈ WSDL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ провСрят Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π° соотвСтствиС синтаксичСским ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ. Однако ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ 1Π‘.

Π›ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ β€” ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвису Ρ‡Π΅Ρ€Π΅Π· сторонний ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SoapUI ΠΈΠ»ΠΈ Postman. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ WSDL Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ тСстовый ΠΌΠ΅Ρ‚ΠΎΠ΄. Если ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ сгСнСрировал запрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ 1Π‘, Π·Π½Π°Ρ‡ΠΈΡ‚ описаниС Π²Π°Π»ΠΈΠ΄Π½ΠΎ ΠΈ работоспособно.

ЧастыС ошибки Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ URL Π² сСкции soap:address, отсутствиС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ Π»ΠΎΠ³Π°Ρ… Π²Π΅Π±-сСрвСра (IIS ΠΈΠ»ΠΈ Apache) ΠΈ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ рСгистрации 1Π‘ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ… ΠΎΡ‚ΠΊΠ°Π·Π° Π² обслуТивании, Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚ присылаСт запрос, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ WSDL.

  • πŸ” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ соотвСтствиС вСрсий SOAP (1.1 ΠΈΠ»ΠΈ 1.2), ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² binding ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… запроса.
  • πŸ›  Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сниффСр Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Fiddler) для просмотра Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… XML-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΠΌΠ΅Π½Π°.
  • πŸ“ Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ сгСнСрированный WSDL с эталонным ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ сСрвиса для поиска Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ.

Если Π²Ρ‹ вноситС измСнСния Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ 1Π‘, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ обновляйтС кэш WSDL Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². МногиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‚ описаниС сСрвиса для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΈ измСнСния ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π±Π΅Π· ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ обновлСния.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π΅Π±-сСрвСров ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда свСряйтС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ WSDL с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΊ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, особСнно послС ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Ρ€Π΅Π»ΠΈΠ·Π°.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности WSDL

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5
МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚ (ΠΏΠΎΡ€Ρ‚Type) Π² WSDL Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ?

ВСхничСски ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ XML-Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ запроса Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ со своими Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² WSDL, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Ρ‚ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, 1Π‘ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ "ΠœΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½". ИзмСнСния Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² WSDL Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ опрСдСлСния Ρ‚ΠΈΠΏΠΎΠ²?

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ, Ссли ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… контСкстах ΠΈΠ»ΠΈ Ссли сСрвис ссылаСтся Π½Π° ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° стрСмится ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ Π² слоТных конфигурациях это ΠΈΠ½ΠΎΠ³Π΄Π° встрСчаСтся.

Как ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· WSDL?

Π’ свойствах ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π΅Π±-сСрвиса Π² ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ "ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ". Π’ΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ останСтся доступным для Π²Ρ‹Π·ΠΎΠ²Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ 1Π‘, Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² описаниС WSDL для Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ основной способ управлСния Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ интСрфСйса.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ 1Π‘ WSDL 2.0?

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8 прСимущСствСнно ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° стандарт WSDL 1.1 ΠΈ SOAP 1.1/1.2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° WSDL 2.0 ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΈΠ»ΠΈ отсутствуСт Π² стандартных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, поэтому рСкомСндуСтся ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ вСрсии 1.1 для максимальной совмСстимости.

Π“Π΄Π΅ хранится физичСский Ρ„Π°ΠΉΠ» WSDL Π½Π° сСрвСрС?

ΠŸΡ€ΠΈ стандартной ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвСр физичСский Ρ„Π°ΠΉΠ» Π½Π° дискС ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π²ΠΎΠΎΠ±Ρ‰Π΅. ОписаниС гСнСрируСтся динамичСски Π² памяти процСссом Π²Π΅Π±-сСрвСра ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС. БтатичСскиС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ явном экспортС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.