用語説明
http://www.atmarkit.co.jp/ait/articles/1002/26/news094.html
比較
SOAP | REST | JSON | |
---|---|---|---|
学習容易性 | × | ○ | ○ |
コーディング量(自動生成分は除く) | ○ | × | ○ |
テストのし易さ | × | ◎ | × |
開発ツール | ○ | × | × |
導入の容易性 | × | ○ | ○ |
開発にかかるトータル時間 | × | ○ | ◎ |
複雑なデータの入力 | ○ | × | × |
複雑なデータの出力 | ○ | ○ | △ |
厳密な型チェック | ○ | × | × |
汎用性(扱える開発言語の種類) | ○ | ○ | × |
標準化団体 | W3C | - | ecma |
拡張性(WS-*) | ◎ | × | × |
SOAP
Java
JAX-WSという、SOAPを扱うためのAPIがある。
JavaでSOAP
PHP
JavaScript
REST
Java
PHP
JavaScript
REST
http://xmlconsortium.org/wg/web2.0/teigensho/4--REST-SOAP.html
明確な仕様はないが、
RSSのような「URLにアクセスするとXMLが返ってくるようなもの」
RESTアクセスのサンプル
1 |
function requestRest(){ var endpoint = "http://ホスト名/WebSite1/WebService.asmx"; // 送信先 var param1 = "keywork"; // パラメータ // URLを生成 var url = endpoint + "/getHello?str=" + encodeURI(param1) + "&dummy="+(new Date().getTime()); // XMLHttpRequestを作成 try { xmlhttp = new XMLHttpRequest(); // Netscape, Firefoxなど } catch (e){ try { xmlhttp = new ActiveXObject ("Msxml2.XMLHTTP"); // IE } catch (e){ try { xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP"); // IE } catch (e){ // XMLHttpRequestの作成に失敗 } } } xmlhttp.onreadystatechange = method1; // レスポンスを受け取った時に呼ばれるメソッドを指定 xmlhttp.open('GET', url, true); xmlhttp.setRequestHeader ("Content-Type","text/xml; charset=utf-8"); xmlhttp.send(); // RESTで送信 } function method1() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { alert(xmlhttp.responseText); // 結果をデバッグ表示 } } |
SOAP
XMLでメッセージをやり取りする。
リクエストをXMLで送って、XMLを受け取る。
SOAPアクセスサンプル
1 |
function requestSoap(){ var endpoint = "http://ホスト名/WebSite1/WebService.asmx"; // 送信先 var param1 = "keywork"; // パラメータ // SOAPメッセージを作成 var msg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\ <soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n\ xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \n\ xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n\ <soap:Body>\n\ <getHello xmlns=\"http://tempuri.org/\">\n\ <str>" + param1 + "</str>\n\ </getHello>\n\ </soap:Body>\n\ </soap:Envelope>"; // XMLHttpRequestを作成 try { xmlhttp = new XMLHttpRequest(); // Netscape, Firefoxなど } catch (e){ try { xmlhttp = new ActiveXObject ("Msxml2.XMLHTTP"); // IE } catch (e){ try { xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP"); // IE } catch (e){ // XMLHttpRequestの作成に失敗 } } } xmlhttp.onreadystatechange = method2; // レスポンスを受け取った時に呼ばれるメソッドを指定 xmlhttp.open('POST', endpoint, true); xmlhttp.setRequestHeader ("Content-Type","text/xml; charset=utf-8"); xmlhttp.setRequestHeader ("SOAPAction","\"http://tempuri.org/getHello\""); xmlhttp.send(msg); // SOAPメッセージを送信 } function method2() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { xmlDoc = xmlhttp.responseXML; // 結果をDOMオブジェクトとして取得 } } |
[カテゴリ: プログラミング言語 > Java]
[通知用URL]
Tweet
最終更新時間:2015年11月29日 14時24分02秒