まずはWebAPIを作成します。
Web APIとは
Web APIは、HTTP(HyperText Transfer Protocol)をベースにデータをやり取りするのが特徴です。
HTTPベースであるため、情報を提供するサーバーとのやり取りは、一般的なWebサイトへのアクセスと同等に行えます。
HTTPを使った一般的なWeb APIでは、単純なリクエスト/レスポンスによるデータ交換が中心となります。
VisualStudioでWeb APIを作成するには
「ASP.NET MVC Webアプリケーション」を 作成します。
ASP.NETMVCはVisualStudio2010では標準で対応していますが、VisualStudio2008では追加パッケージを導入しないと使用することができません。
現在ASP.NET MVCのバージョンは4までありますが、MVC2はASP.NET3.5、MVC3以降はASP.NET4.0が必要です。
VisualStudio2008ではMVC2まで導入可能です。
今回はVisualStudio2008 ASP.NET MVC2でWebAPIを作成します。
以下のサイトよりASP.NET MVC2をダウンロードします。
インストールにはVisualStudio2008にServicePack1をインストールしておく必要があります。
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=22079
インストールが終了したら、Webアプリケーションを作成します。
VisualStudio2008を起動し、「ASP.NET MVC2 Empty Web Application」を選択します。
とりあえず、確認用のページを作成します。
「Controlers」フォルダを右クリックし「Controler」を選択、「HomeControler」を追加します。
「Views」フォルダを右クリックで「新しいフォルダ」を選択し、「Home」フォルダを作成します。
「Home」フォルダを右クリックし「View」を選択し、「Index」ページを追加します。
Indexページを実行したとき、真っ白だとわかりにくいので、Body要素に以下を記載しときます。
実行してみます。
今回は以下のようなxmlを受信し、すべてのnameタグの要素をカンマ区切りで繋げた文字列をxmlで返すWebAPIを作ります。
「Controlers」フォルダを右クリックで「Controler」を選択し、「TestControler」を追加
TestControler.vbのIndexメソッドにコードを書いていきます。
Web APIとは
Web APIは、HTTP(HyperText Transfer Protocol)をベースにデータをやり取りするのが特徴です。
HTTPベースであるため、情報を提供するサーバーとのやり取りは、一般的なWebサイトへのアクセスと同等に行えます。
HTTPを使った一般的なWeb APIでは、単純なリクエスト/レスポンスによるデータ交換が中心となります。
VisualStudioでWeb APIを作成するには
「ASP.NET MVC Webアプリケーション」を 作成します。
ASP.NETMVCはVisualStudio2010では標準で対応していますが、VisualStudio2008では追加パッケージを導入しないと使用することができません。
現在ASP.NET MVCのバージョンは4までありますが、MVC2はASP.NET3.5、MVC3以降はASP.NET4.0が必要です。
VisualStudio2008ではMVC2まで導入可能です。
今回はVisualStudio2008 ASP.NET MVC2でWebAPIを作成します。
ASP.NET MVC2でWebAPIを作成する
以下のサイトよりASP.NET MVC2をダウンロードします。
インストールにはVisualStudio2008にServicePack1をインストールしておく必要があります。
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=22079
インストールが終了したら、Webアプリケーションを作成します。
VisualStudio2008を起動し、「ASP.NET MVC2 Empty Web Application」を選択します。
とりあえず、確認用のページを作成します。
「Controlers」フォルダを右クリックし「Controler」を選択、「HomeControler」を追加します。
「Views」フォルダを右クリックで「新しいフォルダ」を選択し、「Home」フォルダを作成します。
「Home」フォルダを右クリックし「View」を選択し、「Index」ページを追加します。
Indexページを実行したとき、真っ白だとわかりにくいので、Body要素に以下を記載しときます。
<div> <p>MvcApplication1 For Android Test</p> <div>
実行してみます。
今回は以下のようなxmlを受信し、すべてのnameタグの要素をカンマ区切りで繋げた文字列をxmlで返すWebAPIを作ります。
<?xml version="1.0" encoding="UTF-8" ?> <root> <user> <id>1</id> <name>田中</name> </user> <user> <id>2</id> <name>山田</name> </user> <user> <id>3</id> <name>野原</name> </user> </root>
<?xml version="1.0" encoding="UTF-8" ?> <root> <user>田中,山田,野原</user> </root>
「Controlers」フォルダを右クリックで「Controler」を選択し、「TestControler」を追加
TestControler.vbのIndexメソッドにコードを書いていきます。
Imports System.Xml Namespace MvcApplication1 Public Class TestController Inherits System.Web.Mvc.Controller ' ' GET: /Test <HttpPost()> _ <:ValidateInput(False)> _ Public Function Index(ByVal collection As FormCollection) As ActionResult 'パラメータとして渡されたXML文字列を取得 Dim xmlStr As String = collection.Item("testxml") '文字列よりXMLを作成 Dim reqXmlDoc As New XmlDataDocument reqXmlDoc.LoadXml(xmlStr) 'XMLより「name」ノードの値を取得 Dim nodeList As XmlNodeList = reqXmlDoc.GetElementsByTagName("name") Dim namelist As New List(Of String) For Each node As XmlNode In nodeList namelist.Add(node.InnerText) Next '処理結果をXMLとして返す Dim resXmlDoc As New XmlDocument Dim declaration As XmlDeclaration = resXmlDoc.CreateXmlDeclaration("1.0", "UTF-8", Nothing) resXmlDoc.AppendChild(declaration) Dim root As XmlElement = resXmlDoc.CreateElement("root") resXmlDoc.AppendChild(root) Dim element As XmlElement = resXmlDoc.CreateElement("user") element.InnerText = String.Join(",", namelist.ToArray) root.AppendChild(element)
Return Content(resXmlDoc.OuterXml, "application/xml") End Function End Class End Namespace
WebアプリケーションにデータをPostするhtmlを作成します。
TestMvcApplication1.html
ファイルはutf-8で作成しないと日本語が文字化けします。
formのactionに指定するurlは、適宜変更してください。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <h2>MvcApplication1テスト</h2> <form action="http://localhost:53069/Test" method="post"> <textarea name="testxml" style="width:600px; height:130px;"> <?xml version='1.0' encoding="UTF-8" ?> <root> <user> <id>1</id> <name>田中</name> </user> <user> <id>2</id> <name>山田</name> </user> <user> <id>3</id> <name>野原</name> </user> </root> </textarea><br /> <input type=submit /> </form> </body> </html>
Webアプリケーションを実行した状態で上のhtmlをブラウザから開き、クエリ送信ボタンをクリックします。
実行結果
0 件のコメント:
コメントを投稿