### Интеграция приложения. API. Обзор SOAP и REST В первую очередь, указываем тип документа и кодовую таблицу: ```xml <?xml version="1.0" encoding="utf-8"?> ``` Указываем обертку и тело запроса: ```xml <?xml version="1.0" encoding="utf-8"?> <soap:Envelope> <soap:Body> </soap:Body> </soap:Envelope> ``` Запрос будет обработан и без указания пространств имён, но рекомендуется их указать: ```xml <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://sal-apid.herokuapp.com/wsdl"> <soap:Body> </soap:Body> </soap:Envelope> ``` Теперь обращаемся к документу по адресу https://sal-apid.herokuapp.com/wsdl?wsdl В этом документе указан только один тип входящих сообщений - PostPersonRequest: ```xml <PostPersonRequest> </PostPersonRequest> ``` Для этого запроса описано три параметра: - `name`; - `age`; - `gender`. ```xml <PostPersonRequest> <name> </name> <age> </age> <gender> </gender> </PostPersonRequest> ``` `name` - комплексный тип, содержащий три строковых параметра: - `firstname`; - `surname`; - `patronymic`. `age` - десятичное число. `gender` - строка, которая может принимать только одно из двух значений: - `male`; - `female`. ```xml <PostPersonRequest> <name> <firstname>Джеймс</firstname> <surname>Бонд</surname> <patronymic>Ян оглы</patronymic> </name> <age>32</age> <gender>male</gender> </PostPersonRequest> ``` Теперь соберем все вместе: ```xml <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://sal-apid.herokuapp.com/wsdl"> <soap:Body> <PostPersonRequest> <name> <firstname>Джеймс</firstname> <surname>Бонд</surname> <patronymic>Ян оглы</patronymic> </name> <age>32</age> <gender>male</gender> </PostPersonRequest> </soap:Body> </soap:Envelope> ``` В ответ на это сообщение придёт сообщение: ```xml <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://sal-apid.herokuapp.com/wsdl"> <soap:Body> <PostPersonResponse> <key>You are awesome!</key> <result>The data is valid</result> </PostPersonResponse> </soap:Body> </soap:Envelope> ```