欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

WebAPI學習(一)——創(chuàng)建Web API程序 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 網站建設 >

WebAPI學習(一)——創(chuàng)建Web API程序

發(fā)表時間:2016-3-13

發(fā)布人:葵宇科技

瀏覽次數:39


引言


在公司中用到的都是webAPI的應用程序,這個東西之前沒有接觸過。但是這個并不是什么新鮮的東西,因我們


之前有mvc的基礎,所以說學習這個東西還是比較容易的,在開始的時候自己可能突然蒙圈了。因為在人家項目中用


到的東西自己之前都沒有接觸過,感覺非常的陌生甚至整個混亂了。但是當我們靜下心來好好想想的話是非常容易


的,就是在某些寫法上不太一樣,其余的都差不多,下面就給大家創(chuàng)建第一個程序。


創(chuàng)建一個Web API程序


啟動VS2012創(chuàng)建一個新項目,在已經安裝的模板中選擇 ASP.NET MVC4 Web API程序



在ASP.NET MVC項目對話框中選擇Web API項,點擊確定



創(chuàng)建成功之后工程中會自動添加一個Web API服務控制器,上面并附帶訪問地址



項目解決方案,選擇Models文件夾右鍵 添加一個Model類





代碼如下:


namespace Git.Framework.WebAPI.Models
{
public class Contact
{
public int ID { get; set; }

public string Name { get; set; }

public string Sex { get; set; }

public DateTime Birthday { get; set; }

public int Age { get; set; }
} }

工程解決方案選擇Controllers文件夾右鍵添加一個新的Web API controller

在添加控制器彈出對話框中選擇模板: 空API控制器


控制器中添加如下代碼:


namespace Git.Framework.WebAPI.Controllers
{
public class ContactController : ApiController
{
Contact[] contacts = new Contact[]
{
new Contact(){ ID=1, Age=23, Birthday=Convert.ToDateTime("1977-05-30"), Name="情緣", Sex=""},
new Contact(){ ID=2, Age=55, Birthday=Convert.ToDateTime("1937-05-30"), Name="令狐沖", Sex=""},
new Contact(){ ID=3, Age=12, Birthday=Convert.ToDateTime("1987-05-30"), Name="郭靖", Sex=""},
new Contact(){ ID=4, Age=18, Birthday=Convert.ToDateTime("1997-05-30"), Name="黃蓉", Sex=""},
};

/// <summary>
/// /api/Contact
/// </summary>
/// <returns></returns>
public IEnumerable<Contact> GetListAll()
{
return contacts;
}

/// <summary>
/// /api/Contact/id
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Contact GetContactByID(int id)
{
Contact contact = contacts.FirstOrDefault<Contact>(item=>item.ID==id);
if (contact == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return contact;
}

/// <summary>
/// 根據性別查詢
/// /api/Contact?sex=女
/// </summary>
/// <param name="sex"></param>
/// <returns></returns>
public IEnumerable<Contact> GetListBySex(string sex)
{
return contacts.Where(item => item.Sex == sex);
}
}}

瀏覽器訪問API路徑


Controller Methed

URI

GetListAll

/api/Contact

GetListBySex

"/api/Contact?sex=" + sex

GetContactByID

/api/Contact/"+id


在IE瀏覽器中瀏覽出現如下效果



如果在Chrome 或者 FireFox 中瀏覽會先下如下效果


Javascript訪問Web API


在項目中添加一個About View視圖



代碼如下:


<span style="font-family:SimSun;font-size:18px;">@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>About</title>
    <script type="text/javascript" src="/Scripts/jquery-1.7.1.min.js"></script>
    <script type="text/ecmascript">
        $(document).ready(function () {
            $("#btnAll").click(function () {
                $.getJSON("/api/Contact", function (data) {
                    var html = "<ul>";
                    $(data).each(function (i, item) {
                        html += "<li>"+item.ID+":"+item.Name+":"+item.Sex+"</li>";
                    });
                    html += "</ul>";
                    $("#contactAll").html(html);
                });
            });


            $("#btnID").click(function () {
                var id = $("#txtID").val();
                $.getJSON("/api/Contact/"+id, function (data) {
                    var html = "<ul>";
                    $(data).each(function (i, item) {
                        html += "<li>" + item.ID + ":" + item.Name + ":" + item.Sex + "</li>";
                    });
                    html += "</ul>";
                    $("#contactID").html(html);
                });
            });

            $("#btnSex").click(function () {
                var sex = $("#ddlSex").val();
                $.getJSON("/api/Contact?sex=" + sex, function (data) {
                    var html = "<ul>";
                    $(data).each(function (i, item) {
                        html += "<li>" + item.ID + ":" + item.Name + ":" + item.Sex + "</li>";
                    });
                    html += "</ul>";
                    $("#contactSex").html(html);
                });
            });
        });
    </script>
</head>
<body>
    <p>
        <input type="button" id="btnAll" value="查詢所有" /> 
    </p>
    <p>
        <input type="text"  id="txtID" name="txtID"/>
        <input type="button" id="btnID" value="根據ID查詢" /> 
    </p>
    <p>
        <select id="ddlSex" name="ddlSex">
            <option value="男">男</option>
            <option value="女">女</option>
        </select>
        <input type="button" id="btnSex" value="根據性別查詢" /> 
    </p>
    <div id="contactAll">
    </div>
    <div id="contactID">
    </div>
    <div id="contactSex">
    </div>
</body>

</html></span>


運行結果效果圖



Web API總結


1.Web API 控制器(Controller) 繼承ApiController


2. Api 的 Url Map: api/{controller}/{id} 每個"Action"是通過 Http謂詞(GET/POST/PUT/DELETE)映射的


3.客戶端可以通過 Http Header 的 Accept 指定返回數據的格式。默認是支持:appliction/xml 和


application/json,當想返回比如 image/jpeg 這樣的圖片格式時,需要添加 MediaTypeFormatter 。比如:當


指定某個 Task 時,通過指定 Accept : image/jpeg 獲取該 Task 的圖片信息。



g-Jack CSDN認證博客專家 Spring Java Linux 碩士畢業(yè)于北京交通大學軟件工程專業(yè),擁有5年java工作經驗,熱愛編程,樂于分享,喜歡研究架構方向的優(yōu)化,和大數據高并發(fā)架構的設計。

相關案例查看更多