SlideShare a Scribd company logo
ASP.NET MVC Web API 簡介
何謂RESTful
 認識ASP.NET MVC Web API
 ASP.NET MVC Web API 基本架構
 資料的REST介面
 如何建立 ASP.NET MVC Web API 應用程式
 第一個 Web API應用程式 CRUD
 如何透過Web API傳遞(圖片/Binary)
 同 WCF Data Service ,且支援RESTful介面,但
是它更簡化,更簡單,易於實作。
 只支援HTTP協定,透過 GET/POST 方式提供遠端
使用XML或JSON資料格式進行呼叫與使用。
 更容易讓多種裝置使用:如平板、智慧型裝置、桌
上型電腦、其他平台服務、瀏覽器…
 支援非同步執行特性,有更佳之延展性
 支援 ASP.NET MVC 的 Routing 功能
 強行別的HttpRequestMessage與
HttpResponseMessage,因此模型繫結與驗證更
加容易。
Asp.net mvc 4 web api 開發簡介
• 最根本的模式。
• Entities 與 associations  資源與連結。
Entity Data
Model
• 每種資源都可以由 URI 來定位。
• 具有彈性的資料擷取 URI 結構。
URIs
• 將資料視為資源,使用 HTTP 動詞來操作它。
• 平衡快取,代理,驗證,…
HTTP
• AtomPub, JSON資料格式
 取得CustomerID=‘ALFKI’ 的資料
 使用top語句,取得第一筆資料
 選擇 Web API 類型的應用程式。
 建立Model & ViewModel
 建立 apiController
 建立存取 apiController 的 View
Asp.net mvc 4 web api 開發簡介
 可以選擇使用 EDM 或仿間其他種ORM工具,如
Nhibernate 等。
 也可以自行定義 ViewModel 與DAL 資料層。
 直接在Controller資料夾點選右鍵,加入控制器
 可透過範本自動建立
 若自行定義 ViewModel 則使用 ViewModel來建立
 Demo
HttpResponseMessage response = new HttpResponseMessage();
NorthwindEntities context = new NorthwindEntities();
var result = from Emp in context.Employees
where Emp.EmployeeID == id
select Emp;
var emp = result.FirstOrDefault();
if (emp != null)
{
response.Content = new StreamContent(new MemoryStream(emp.Ph
response.Content.Headers.ContentType = new MediaTypeHeaderValu
mage/png");
}
return response;
Asp.net mvc 4 web api 開發簡介
 Demo
Q&A
Ad

More Related Content

Viewers also liked (8)

ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索
Will Huang
 
企業現代化網站架構
企業現代化網站架構企業現代化網站架構
企業現代化網站架構
Gelis Wu
 
活用 Application insight
活用 Application insight活用 Application insight
活用 Application insight
Gelis Wu
 
DEV208 - ASP.NET MVC 5 新功能探索
DEV208 - ASP.NET MVC 5 新功能探索DEV208 - ASP.NET MVC 5 新功能探索
DEV208 - ASP.NET MVC 5 新功能探索
Will Huang
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
 
[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享
teddysoft
 
從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術
Will Huang
 
ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索ASP.NET MVC 5 新功能探索
ASP.NET MVC 5 新功能探索
Will Huang
 
企業現代化網站架構
企業現代化網站架構企業現代化網站架構
企業現代化網站架構
Gelis Wu
 
活用 Application insight
活用 Application insight活用 Application insight
活用 Application insight
Gelis Wu
 
DEV208 - ASP.NET MVC 5 新功能探索
DEV208 - ASP.NET MVC 5 新功能探索DEV208 - ASP.NET MVC 5 新功能探索
DEV208 - ASP.NET MVC 5 新功能探索
Will Huang
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
 
[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享
teddysoft
 
從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術
Will Huang
 

Similar to Asp.net mvc 4 web api 開發簡介 (20)

從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境
MIS2000 Lab.
 
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC
 
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
twMVC
 
twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web API
twMVC
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8
twMVC
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
jeffz
 
Asp.net+mvc4框架揭秘
Asp.net+mvc4框架揭秘Asp.net+mvc4框架揭秘
Asp.net+mvc4框架揭秘
Zhenhua Tang
 
20130823微軟雲端平台開發者日
20130823微軟雲端平台開發者日20130823微軟雲端平台開發者日
20130823微軟雲端平台開發者日
twMVC
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17
twMVC
 
twMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure Platform
twMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure PlatformtwMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure Platform
twMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure Platform
twMVC
 
Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹
My own sweet home!
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
fengmk2
 
通过Struts构建Web应用
通过Struts构建Web应用通过Struts构建Web应用
通过Struts构建Web应用
yiditushe
 
第14章 创建与管理www服务
第14章 创建与管理www服务第14章 创建与管理www服务
第14章 创建与管理www服务
ben1024
 
第14章 创建与管理www服务
第14章 创建与管理www服务第14章 创建与管理www服务
第14章 创建与管理www服务
ben1024
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
fengmk2
 
從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境
MIS2000 Lab.
 
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC
 
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
twMVC
 
twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web API
twMVC
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8
twMVC
 
Real World ASP.NET MVC
Real World ASP.NET MVCReal World ASP.NET MVC
Real World ASP.NET MVC
jeffz
 
Asp.net+mvc4框架揭秘
Asp.net+mvc4框架揭秘Asp.net+mvc4框架揭秘
Asp.net+mvc4框架揭秘
Zhenhua Tang
 
20130823微軟雲端平台開發者日
20130823微軟雲端平台開發者日20130823微軟雲端平台開發者日
20130823微軟雲端平台開發者日
twMVC
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
 
SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17 SignalR實戰技巧 twmvc#17
SignalR實戰技巧 twmvc#17
twMVC
 
twMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure Platform
twMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure PlatformtwMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure Platform
twMVC#05 |開發與移轉 ASP.NET MVC 4.0 應用程式到 Windows Azure Platform
twMVC
 
Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹
My own sweet home!
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
fengmk2
 
通过Struts构建Web应用
通过Struts构建Web应用通过Struts构建Web应用
通过Struts构建Web应用
yiditushe
 
第14章 创建与管理www服务
第14章 创建与管理www服务第14章 创建与管理www服务
第14章 创建与管理www服务
ben1024
 
第14章 创建与管理www服务
第14章 创建与管理www服务第14章 创建与管理www服务
第14章 创建与管理www服务
ben1024
 
Node Web开发实战
Node Web开发实战Node Web开发实战
Node Web开发实战
fengmk2
 
Ad

More from Gelis Wu (20)

Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________
Gelis Wu
 
.NET 7 升級教戰手冊_V1.0.pdf
.NET 7 升級教戰手冊_V1.0.pdf.NET 7 升級教戰手冊_V1.0.pdf
.NET 7 升級教戰手冊_V1.0.pdf
Gelis Wu
 
顧問養成秘技 - 顧問服務實戰.pptx
顧問養成秘技 - 顧問服務實戰.pptx顧問養成秘技 - 顧問服務實戰.pptx
顧問養成秘技 - 顧問服務實戰.pptx
Gelis Wu
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界
Gelis Wu
 
軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路
Gelis Wu
 
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
Gelis Wu
 
Blazor Component 開發實戰
Blazor Component 開發實戰Blazor Component 開發實戰
Blazor Component 開發實戰
Gelis Wu
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
Gelis Wu
 
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
Gelis Wu
 
專業顧問的技能成長日記
專業顧問的技能成長日記專業顧問的技能成長日記
專業顧問的技能成長日記
Gelis Wu
 
你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?
Gelis Wu
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
Gelis Wu
 
一個 ASP.NET Core 2.1 開發指南
一個 ASP.NET Core 2.1 開發指南一個 ASP.NET Core 2.1 開發指南
一個 ASP.NET Core 2.1 開發指南
Gelis Wu
 
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript
Gelis Wu
 
Dot netstandard2.0與.net的未來發展
Dot netstandard2.0與.net的未來發展Dot netstandard2.0與.net的未來發展
Dot netstandard2.0與.net的未來發展
Gelis Wu
 
客製化的 Web api 的框架設計
客製化的 Web api 的框架設計客製化的 Web api 的框架設計
客製化的 Web api 的框架設計
Gelis Wu
 
Asp.net identity 2.0
Asp.net identity 2.0Asp.net identity 2.0
Asp.net identity 2.0
Gelis Wu
 
Asp.net mvc 基礎
Asp.net mvc 基礎Asp.net mvc 基礎
Asp.net mvc 基礎
Gelis Wu
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
Gelis Wu
 
Azure PaaS (WebApp & SQL Database) workshop solution
Azure PaaS (WebApp & SQL Database) workshop solutionAzure PaaS (WebApp & SQL Database) workshop solution
Azure PaaS (WebApp & SQL Database) workshop solution
Gelis Wu
 
Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________
Gelis Wu
 
.NET 7 升級教戰手冊_V1.0.pdf
.NET 7 升級教戰手冊_V1.0.pdf.NET 7 升級教戰手冊_V1.0.pdf
.NET 7 升級教戰手冊_V1.0.pdf
Gelis Wu
 
顧問養成秘技 - 顧問服務實戰.pptx
顧問養成秘技 - 顧問服務實戰.pptx顧問養成秘技 - 顧問服務實戰.pptx
顧問養成秘技 - 顧問服務實戰.pptx
Gelis Wu
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界
Gelis Wu
 
軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路
Gelis Wu
 
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
深入淺出領域驅動設計:以 .NET 5 與線上房貸申請系統為例
Gelis Wu
 
Blazor Component 開發實戰
Blazor Component 開發實戰Blazor Component 開發實戰
Blazor Component 開發實戰
Gelis Wu
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
Gelis Wu
 
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
該準備從 .NET Framework 4.x 遷移至 .NET Core 3.0 了嗎?
Gelis Wu
 
專業顧問的技能成長日記
專業顧問的技能成長日記專業顧問的技能成長日記
專業顧問的技能成長日記
Gelis Wu
 
你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?你的軟體架構夠敏捷嗎?
你的軟體架構夠敏捷嗎?
Gelis Wu
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
Gelis Wu
 
一個 ASP.NET Core 2.1 開發指南
一個 ASP.NET Core 2.1 開發指南一個 ASP.NET Core 2.1 開發指南
一個 ASP.NET Core 2.1 開發指南
Gelis Wu
 
前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript前端大型系統的基石 TypeScript
前端大型系統的基石 TypeScript
Gelis Wu
 
Dot netstandard2.0與.net的未來發展
Dot netstandard2.0與.net的未來發展Dot netstandard2.0與.net的未來發展
Dot netstandard2.0與.net的未來發展
Gelis Wu
 
客製化的 Web api 的框架設計
客製化的 Web api 的框架設計客製化的 Web api 的框架設計
客製化的 Web api 的框架設計
Gelis Wu
 
Asp.net identity 2.0
Asp.net identity 2.0Asp.net identity 2.0
Asp.net identity 2.0
Gelis Wu
 
Asp.net mvc 基礎
Asp.net mvc 基礎Asp.net mvc 基礎
Asp.net mvc 基礎
Gelis Wu
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
Gelis Wu
 
Azure PaaS (WebApp & SQL Database) workshop solution
Azure PaaS (WebApp & SQL Database) workshop solutionAzure PaaS (WebApp & SQL Database) workshop solution
Azure PaaS (WebApp & SQL Database) workshop solution
Gelis Wu
 
Ad

Asp.net mvc 4 web api 開發簡介

  • 1. ASP.NET MVC Web API 簡介 何謂RESTful
  • 2.  認識ASP.NET MVC Web API  ASP.NET MVC Web API 基本架構  資料的REST介面  如何建立 ASP.NET MVC Web API 應用程式  第一個 Web API應用程式 CRUD  如何透過Web API傳遞(圖片/Binary)
  • 3.  同 WCF Data Service ,且支援RESTful介面,但 是它更簡化,更簡單,易於實作。  只支援HTTP協定,透過 GET/POST 方式提供遠端 使用XML或JSON資料格式進行呼叫與使用。  更容易讓多種裝置使用:如平板、智慧型裝置、桌 上型電腦、其他平台服務、瀏覽器…  支援非同步執行特性,有更佳之延展性  支援 ASP.NET MVC 的 Routing 功能  強行別的HttpRequestMessage與 HttpResponseMessage,因此模型繫結與驗證更 加容易。
  • 5. • 最根本的模式。 • Entities 與 associations  資源與連結。 Entity Data Model • 每種資源都可以由 URI 來定位。 • 具有彈性的資料擷取 URI 結構。 URIs • 將資料視為資源,使用 HTTP 動詞來操作它。 • 平衡快取,代理,驗證,… HTTP • AtomPub, JSON資料格式
  • 8.  選擇 Web API 類型的應用程式。  建立Model & ViewModel  建立 apiController  建立存取 apiController 的 View
  • 10.  可以選擇使用 EDM 或仿間其他種ORM工具,如 Nhibernate 等。  也可以自行定義 ViewModel 與DAL 資料層。
  • 12.  可透過範本自動建立  若自行定義 ViewModel 則使用 ViewModel來建立
  • 14. HttpResponseMessage response = new HttpResponseMessage(); NorthwindEntities context = new NorthwindEntities(); var result = from Emp in context.Employees where Emp.EmployeeID == id select Emp; var emp = result.FirstOrDefault(); if (emp != null) { response.Content = new StreamContent(new MemoryStream(emp.Ph response.Content.Headers.ContentType = new MediaTypeHeaderValu mage/png"); } return response;
  • 17. Q&A