ASP.NET Web API設計 ASP.NET Web API设计

[美]布洛克西布拉奧等

  • 出版商: 人民郵電出版社
  • 出版日期: 2015-01-01
  • 定價: CNY $99.00
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 429
  • 裝訂: 平裝
  • ISBN: 7115377723
  • ISBN-13: 9787115377722
  • 相關原文書: Designing Evolvable Web APIs with ASP.NET (Paperback)

立即出貨

買這商品的人也買了...

商品描述

<內容介紹>

本書依托ASP.NET Web API闡述API設計與開發的通用技術,是一本全面介紹如何構建真實可演化API的實踐指南。本書共分三部分。第一部分介紹Web/HTTP和API開發的基礎知識,介紹ASP.NET Web API,為初學者以及想充分利用HTTP的讀者建立好的起點。第二部分完整介紹了真實Web應用程序的開發,其內容從設計講到實現,全面覆蓋客戶端與服務器端開發。第三部分深入ASP.NET Web API的內部機制,並講解一些高級的主題(如安全和可測試性),加深你的理解,讓讀者學會更好地利用Web API構建可演化系統。

作者簡介

Glenn Block曾任職微軟,推動了ASP.NET Web API早期版本的開發。
Pablo Cibraro擁有十餘年使用微軟技術設計和實現大型分佈式系統的經驗。
Pedro Félix是一位軟件工程師和教授,研究方向為基礎設施實現、用戶身份管理,以及訪問控制。
Howard Dierking是微軟ASP.NET Web API團隊的產品經理,當前的工作重點包括NuGet和Katana項目。
Darrel Miller是Tavis軟件公司的創始人之一,幫助人們學習如何在業務應用中採用REST架構風格。

目錄大綱

作者簡介XV 
關於封面圖XVI 
序XVII 
前言XX 

第一部分基礎知識

第1章因特網、萬維網和HTTP協議3 
1.1 Web體系結構4 
1.1.1資源5 
1.1.2 URI 5 
1.1.3酷URI 6 
1.1.4表示6 
1.1.5媒體類型7 
1.2 HTTP協議8 
1.2.1 HTTP 1.1之後9 
1.2.2 HTTP消息交換9 
1.2.3中間層10 
1.2.4中間層類型11 
1.2.5 HTTP方法12 
1.2.6標頭15 
1.2.7 HTTP狀態碼16 
1.2.8內容協商16 
1.2.9緩存16 
1.2.10身份驗證19 
1.2.11身份驗證方案20 
1.2.12附加身份驗證方案20 
1.3小結21 

第2章Web API 22 
2.1什麼是Web API 22 
2.2 SOAP Web服務22 
2.3 Web API的起源23
2.4 Web API革命開始23 
2.5關注Web 23 
2.6 Web API指南24 
2.7特定領域的媒體類型24 
2.8媒體類型檔案25 
2.9多個表示26 
2.10 API風格27 
2.10.1 Richardson成熟度模型28 
2.10.2 RPC(RMM第0級) 28 
2.10.3資源(RMM第1級) 30 
2.10.4 HTTP謂詞(RMM第2級) 32 
2.10.5以資源為中心的API 34 
2.10.6超媒體(RMM第3級) 35 
2.10.7 REST 39 
2.10.8 REST約束39 
2.11小結41 

第3章ASP.NET Web API 101 42 
3.1核心場景42 
3.1.1第一類HTTP編程43 
3.1.2對稱的客戶端和服務器編程體驗44 
3.1 .3對不同格式的靈活支持45 
3.1.4告別“尖括號編碼” 45 
3.1.5支持單元測試45 
3.1.6多種託管選項46 
3.2 ASP.NET Web API入門46 
3.3新建Web API項目50
3.3.1 WebApiConfig 50 
3.3.2 ValuesController 52 
3.4“Hello Web API!” 53 
3.4.1創建服務53 
3.4.2客戶端60 
3.4.3宿主60 
3.5小結61 

第4章處理架構62 
4.1託管層64 
4.2消息處理程序管道65 
4.3控制器處理69 
4.4小結75 

第二部分真實世界的API開發

第5章應用程序79 
5.1為什麼要可演化80 
5.1.1演化的障礙81 
5.1.2代價是什麼81 
5.1.3為什麼不創建新版本83 
5.1.4付諸實踐86 
5.2應用程序目標86 
5.2.1目標86 
5.2.2機會87 
5.3信息模型87 
5.3.1子域88 
5.3.2相關資源88 
5.3.3屬性組89 
5.3 .4屬性組的集合90 
5.3.5信息模型與媒體類型90 
5.3.6問題集合91 
5.4資源模型92 
5.4.1根資源92
5.4.2搜索資源92 
5.4.3集合資源92 
5.4.4個體資源93 
5.5小結95 

第6章媒體類型選擇與設計96 
6.1自描述96 
6.2協議類型97 
6.3媒體類型97 
6.3.1原始格式97 
6.3. 2流行格式99 
6.3.3新格式100 
6.3.4超媒體類型102 
6.3.5媒體類型爆炸102 
6.3.6通用媒體類型和檔案102 
6.3.7其他超媒體類型106 
6.4鏈接關係類型107 
6.4.1語義107 
6.4.2替換嵌入資源109 
6.4.3間接層109 
6.4.4引用數據110 
6.4.5工作流111 
6.4.6語法112 
6.4.7完美結合114 
6.5設計新的媒體類型協議114 
6.5.1選擇格式115 
6.5.2支持超媒體116 
6.5.3可選、強制、省略和適用116 
6.5.4嵌入元數據和外部元數據117 
6.5.5可擴展性117 
6.5.6註冊媒體類型119
6.6設計新的鏈接關係119 
6.6.1標準鏈接關係119 
6.6.2擴展鏈接關係120 
6.6.3嵌入鏈接關係121 
6.6.4註冊鏈接關係121 
6.7問題跟踪域中的媒體類型121 
6.7.1 list資源122 
6.7.2 item資源123 
6.7.3 discovery資源124 
6.7.4 search資源125 
6.8小結125 

第7章構建API 126 
7.1設計126 
7.2獲得源代碼127 
7.3使用行為驅動開發構建實現127 
7.4瀏覽解決方案127 
7.5軟件包和程序庫128 
7.6自託管128 
7.7模型和服務130 
7.7.1問題和問題庫130 
7.7.2 IssueState 130 
7.7.3 IssuesState 131 
7.7.4 Link 133 
7.7.5 LinkeStateFactory 133 
7.7.6 LinkFactory 134 
7.7.7 IssueLinkFactory 135 
7.8驗收標準136 
7.9功能:獲取問題139
7.9.1獲取一個問題142 
7.9.2獲取未關閉的和已關閉的問題144 
7.9.3獲取不存在的問題146 
7.9.4獲取所有問題147 
7.9.5獲取所有問題的Collection+Json表示150 
7.9. 6搜索問題152 
7.10功能:創建問題153 
7.11功能:更新問題156 
7.11.1更新一個問題156 
7.11.2更新不存在的問題158 
7.12功能:刪除問題159 
7.12.1刪除一個問題159 
7.12.2刪除不存在的問題160 
7.13功能:處理問題161 
7.13.1測試161 
7.13.2實現161 
7.14小結163 

第8章改進API 164 
8.1新功能的驗收標準164 
8.2實現輸出緩存支持166 
8.3添加輸出緩存測試167 
8.4實現緩存重驗證169 
8.5為緩存重驗證實現條件GET 170 
8.6衝突檢測173 
8.7實現衝突檢測174 
8.8變更審計176 
8.9使用Hawk認證實現變更審計177 
8.10跟踪181
8.11實現跟踪182 
8.12小結184 

第9章構建客戶端185 
9.1客戶端程序庫186 
9.1.1封裝庫186 
9.1.2鏈接用作函數189 
9.2應用程序工作流194 
9.2.1用戶需知195 
9.2.2帶有使命的客戶端198 
9.2.3客戶端狀態201 
9.3小結201 

第三部分Web API細節

第10章HTTP編程模型205 
10.1消息206 
10.2標頭210 
10.3消息內容215 
10.3.1使用消息內容216 
10.3. 2創建消息內容218 
10.4小結226 

第11章託管227 
11.1 Web託管228 
11.1.1 ASP.NET基礎結構228 
11.1.2 ASP.NET路由230 
11.1.3 Web API路由232 
11.1.4全局配置234 
11.1.5 Web API ASP.NET處理程序235 
11.2自託管238 
11.2.1 WCF架構238 
11.2.2 HttpSelfHostServer類240
11.2.3 HttpSelfHostConfiguration類241 
11.2.4 URL預留和訪問控制242 
11.3用OWIN和Katana託管Web API 243 
11.3.1 OWIN 244 
11.3.2 Katana項目245 
11.3.3 Web API配置247 
11.3.4 Web API中間件248 
11.3.5 OWIN生態環境250 
11.4內存託管250 
11.5 Azure Service Bus Host 252 
11.6小結256 

第12章控制器和路由257 
12.1 HTTP消息流概覽257 
12.2消息處理程序管道258 
12.2.1分發程序262 
12.2.2 HttpControllerDispatcher 263 
12.2.3控制器選擇263 
12.2.4控制器激活266 
12.3控制器管道267 
12.3.1 ApiController 267 
12.3.2 ApiController處理模型268 
12.4小結279 

第13章格式化程序和模型綁定280 
13.1 ASP. NET Web API中模型的重要性280
13.2模型綁定如何工作281 
13.3內建的模型綁定器284 
13.3.1 ModelBindingParameterBinder 284 
13.3.2值提供程序285 
13.3.3模型綁定器288 
13.3.4只對URI進行模型綁定290 
13.3.5 FormatterParameterBinder實現291 
13.3.6 HttpParameterBinding的默認選擇296 
13.4模型驗證296 
13.4.1將數據標記屬性用於模型296 
13.4.2查詢驗證結果297 
13.5小結299 

第14章HttpClient 300 
14.1 HttpClient類300 
14.1.1生存週期301 
14.1.2封裝類301 
14.1.3多個實例302 
14.1.4線程安全302 
14.1.5輔助方法302 
14.1.6抽絲剝繭303 
14.1.7完成的請求無異常303 
14.1.8內容為王303 
14.1.9取消請求304 
14.1.10 SendAsync 305 
14.2客戶端消息處理程序306
14.2.1代理處理程序308 
14.2.2偽響應處理程序309 
14.2.3創建可以重用的響應處理程序310