API設計模式

[美]奧拉夫·齊默爾曼、米爾科·斯托克、丹尼爾·呂布克、烏韋·茲敦、切薩雷·保塔索 著 蔣楠 譯

  • 出版商: 清華大學
  • 出版日期: 2025-03-01
  • 定價: $768
  • 售價: 8.5$653
  • 語言: 簡體中文
  • ISBN: 7302681724
  • ISBN-13: 9787302681724
  • 相關分類: Design Pattern
  • 下單後立即進貨 (約4週~6週)

  • API設計模式-preview-1
  • API設計模式-preview-2
  • API設計模式-preview-3
API設計模式-preview-1

相關主題

商品描述

" ?通過模式發現API設計面臨的挑戰並採取相應的解決措施 ?合理規劃API端點和操作 ?設計請求消息和響應消息及其表示形式 ?優化消息設計以提高質量 ?規劃API的演進 ?編寫API契約並向相關方傳達這些契約 ?搭配使用各種模式以解決實際問題,並做出正確的權衡"

目錄大綱

目    錄

第Ⅰ部分  基礎知識概述

第1章 API基礎知識   3

1.1  從本地接口到遠程API   3

1.1.1  分佈式系統和遠程API概述   4

1.1.2  遠程API:通過集成協議訪問服務   5

1.1.3  API的重要性   6

1.2  API設計中的決策驅動因素   11

1.2.1  API的成功要素   11

1.2.2  API設計有何不同   12

1.2.3  API設計難在哪裡   12

1.2.4  架構方面的重要需求   14

1.2.5 開發者體驗   15

1.3 遠程API的領域模型   16

1.3.1  通信參與者   16

1.3.2  API端點提供描述操作的API契約   17

1.3.3  消息是對話的組成部分   17

1.3.4  消息結構和表示   18

1.3.5  API契約   19

1.3.6  全書使用的領域模型   20

1.4  本章小結   20

第2章 Lakeside Mutual案例研究   23

2.1  業務背景和要求   23

2.1.1  用戶故事和期望的系統質量   23

2.1.2  分析級別的領域模型   24

2.2  架構概述   26

2.2.1  系統上下文   26

2.2.2  應用程序架構   27

2.3  API設計活動   29

2.4  目標API規範   29

2.5  本章小結   30

第3章 API決策敘述   33

3.1  前奏:模式作為決策選項,設計驅動力作為決策標準   33

3.2  API的基礎性決策和模式   35

3.2.1  API可見性   36

3.2.2  API集成類型   39

3.2.3  API文檔   41

3.3  API角色和職責的相關決策   43

3.3.1  端點的架構角色   44

3.3.2  剖析各類信息持有者角色   46

3.3.3 定義操作職責   50

3.4  選擇消息表示模式   52

3.4.1  表示元素的扁平結構與嵌套結構   54

3.4.2  元素構造型   58

3.5  插敘:Lakeside Mutual案例中的職責和結構模式   61

3.6  API質量治理的相關決策   62

3.6.1  API客戶端的識別和身份驗證   63

3.6.2  對API的使用情況進行計量和計費   65

3.6.3  防止API客戶端過度使用API   67

3.6.4  明確規定質量目標和處罰機制   69

3.6.5  報告和處理錯誤   70

3.6.6  顯式上下文表示   71

3.7  API質量改進的相關決策   73

3.7.1  分頁   73

3.7.2  避免非必要數據傳輸的其他手段   76

3.7.3  處理消息中的引用數據   79

3.8  API演進的相關決策   81

3.8.1  版本控制和兼容性管理   83

3.8.2  版本發布和停用的相關策略   85

3.9  插敘:Lakeside Mutual案例中的質量和演進模式   88

3.10  本章小結   90

第Ⅱ部分  模式

第4章 模式語言簡介   95

4.1  定位和範圍   95

4.2  使用模式的原因和方法   97

4.3  模式一覽   98

4.3.1  結構組織:按範圍查找模式   98

4.3.2  主題分類:查找模式   99

4.3.3  時間維度:遵循設計完善階段   100

4.3.4  瀏覽方式:從Map到MAP   101

4.4  基礎模式:API可見性和集成類型   102

4.4.1  Frontend Integration模式   103

4.4.2  Backend Integration模式   104

4.4.3  Public API模式   105

4.4.4  Community API模式   106

4.4.5  Solution-Internal API模式   108

4.4.6  基礎模式小結   109

4.5  基本結構模式   109

4.5.1  Atomic Parameter模式   110

4.5.2  Atomic Parameter List模式   112

4.5.3  Parameter Tree模式   114

4.5.4  Parameter Forest模式   116

4.5.5  基本結構模式小結   118

4.6  本章小結   119

第5章 定義端點類型和操作   121

5.1  API角色和職責簡介   121

5.1.1  設計挑戰和期望質量   122

5.1.2  本章討論的模式   123

5.2  端點角色(服務粒度)   125

5.2.1  Processing Resource模式   125

5.2.2  Information Holder Resource模式   132

5.2.3  Operational Data Holder模式   138

5.2.4  Master Data Holder模式   142

5.2.5  Reference Data Holder模式   146

5.2.6  Link Lookup Resource模式   149

5.2.7  Data Transfer Resource模式   154

5.3  操作職責   161

5.3.1  State Creation Operation模式   162

5.3.2  Retrieval Operation模式   167

5.3.3  State Transition Operation模式   171

5.3.4  Computation Function模式   180

5.4  本章小結   186

第6章 設計請求消息和響應消息表示   189

6.1  消息表示設計簡介   189

6.1.1  消息表示設計面臨的挑戰   190

6.1.2  本章討論的模式   190

6.2  元素構造型   191

6.2.1  Data Element模式   192

6.2.2  Metadata Element模式   196

6.2.3  Id Element模式   203

6.2.4  Link Element模式   207

6.3  特殊用途的表示元素   212

6.3.1  API Key模式   213

6.3.2  Error Report模式   217

6.3.3  Context Representation模式   221

6.4  本章小結   231

第7章 優化消息設計以改善質量   233

7.1  API質量簡介   233

7.1.1  改善API質量面臨的挑戰   234

7.1.2  本章討論的模式   234

7.2  消息粒度   236

7.2.1  Embedded Entity模式   237

7.2.2  Linked Information Holder模式   241

7.3  由客戶端決定獲取哪些消息內容(響應塑造)   245

7.3.1  Pagination模式   246

7.3.2  Wish List模式   253

7.3.3  Wish Template模式   256

7.4  消息交換優化(對話效率)   260

7.4.1  Conditional Request模式   261

7.4.2  Request Bundle模式   265

7.5  本章小結   269

第8章 API演進   271

8.1  API演進簡介   271

8.1.1  API演進面臨的挑戰   271

8.1.2  本章討論的模式   274

8.2  版本控制和兼容性管理   274

8.2.1  Version IDentifier模式   275

8.2.2  Semantic Versioning模式   280

8.3  生命周期管理保證   284

8.3.1  Experimental Preview模式   284

8.3.2  Aggressive Obsolescence模式   287

8.3.3  Limited Lifetime Guarantee模式   291

8.3.4  Two in Production模式   294

8.4  本章小結   298

第9章 編寫和傳達API契約   301

9.1  API文檔簡介   301

9.1.1  編寫API文檔時面臨的挑戰   301

9.1.2  本章討論的模式   303

9.2  文檔模式   303

9.2.1  API Description模式   304

9.2.2  Pricing Plan模式   309

9.2.3  Rate Limit模式   313

9.2.4  Service Level Agreement模式   316

9.3  本章小結   320

第Ⅲ部分  實踐應用

第10章 實際的模式案例   325

10.1  瑞士抵押貸款業務的大規模流程集成   325

10.1.1  業務背景和領域   325

10.1.2  技術方面的挑戰   326

10.1.3  API的角色和狀態   327

10.1.4  模式使用和實現   328

10.1.5  回顧與展望   333

10.2  建築施工領域的報價和訂購流程   335

10.2.1  業務背景和領域   335

10.2.2  技術方面的挑戰   336

10.2.3  API的角色和狀態   336

10.2.4  模式使用和實現   338

10.2.5  回顧與展望   339

10.3  本章小結   340

第11章 結語   341

11.1  簡要回顧   341

11.2  API研究:模式重構、微服務領域特定語言及其他   342

11.3  未來展望   343

11.4  其他資源   344

11.5  寫在最後   344

附錄A 端點識別和模式選擇指南   345

附錄B Lakeside Mutual案例的實現   353

附錄C 微服務領域特定語言   361