- PVSM.RU - https://www.pvsm.ru -
Лучшее из описаний разницы между подходами REST и SOAP нашлось в книге "Zend Framework: разработка веб-приложений на PHP [1]". Спешу поделиться сами, чтобы вы были вооружены на тот случай, если вас спросят о разнице между REST и SOAP на вечеринке собеседовании.
Для начала, взгляните разницу между пакетами запроса и ответа SOAP и REST. Вот пакеты запроса и ответа SOAP:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope"
xmlns:ns1="http://rpc.geocoder.us/Geo/Coder/US/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:geocode>
<location xsl:type="xsd:string">1600 Pennsylvania Av, Washington, DC</location>
</ns1:geocode>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>
<soap:Body>
<geocodeREspose xmlns="http://rpc.geocoder.us/Geo/Coder/US/">
<geo:results soapenc:arrayType="geo:GeocoderAddressResult[1]"
xsl:type="soapenc:Array"
xmlns:geo="http://rpc.geocoder.us/Geo/Coder/US/">
<geo:item xsl:type="geo:GeocoderAddressResult" xmlns:geo="http://rpc.geocoder.us/Geo/Coder/US/">
<geo:number xsl:type="xsd:int">1600</geo:number>
<geo:lat xsl:type="xsd:float">38.898748</geo:lat>
<geo:street xsl:type="xsd:string">Pensylvania</geo:street>
<geo:state xsl:type="xsd:string">DC</geo:state>
<geo:city xsl:type="xsd:string">Washington</geo:city>
<geo:zip xsl:type="xsd:int">20502</geo:zip>
<geo:suffix xsl:type="xsd:string">NW</geo:suffix>
<geo:long xsl:type="xsd:float">-77.037684</geo:long>
<geo:type xsl:type="xsd:string">Ave</geo:type>
<geo:prefix xsl:type="xsd:string">
</geo:item>
</geo:results>
</geocodeResponse>
</soap:Body>
</soap:Envelope>
Вот запрос и ответ REST:
GET http://geocoder.us/service/rest/geocode?address=1600+Pennsylvania+Ave,+Washington+DC
<?xml version="1.0"?>
<rdf:RDF
xmls:dc="http://purl.org/dc/elements/1.1/"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<geo:Point rdf:nodeID="aid47091944">
<dc:description>1600 Pensylvaia Ave NW, Washington DC 20502</dc:description>
<geo:long>-77.037684</geo:long>
<geo:lat>38.898748</geo:lat>
</geo:point>
</rdf:RDF>
А теперь, отличнейшее описание из книги:
Если на какой-нибудь вечеринке вам зададут вопрос об основных различиях между подходами SOAP и REST, а неподалеку будет находиться привлекательный представитель противоположного пола, вот ответ на этот вопрос:
Автор: ellenaua
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/soap/20046
Ссылки в тексте:
[1] Zend Framework: разработка веб-приложений на PHP: http://www.piter-press.ru/book.phtml?978545900826
[2] Источник: http://habrahabr.ru/post/158605/
Нажмите здесь для печати.