SlideShare ist ein Scribd-Unternehmen logo
1 von 160
Downloaden Sie, um offline zu lesen
如何利用 OpenAPI 及 WebHooks
讓老舊的網路服務也可程式化
Kewang
Who I am
● 王慕羣 Kewang
● Java / PHP / Node.js / AngularJS
● HBase / SQL-like
● Git / DevOps
●
熱愛開源
GitHubGitHub kewangkewang
LinkedinLinkedin kewangtwkewangtw
SlideShareSlideShare kewangkewang
GmailGmail cpckewangcpckewang
FacebookFacebook Kewang 的資訊進化論Kewang 的資訊進化論
JCConfJCConf '16 '17'16 '17
HadoopConHadoopCon '14 '15'14 '15
MOPCONMOPCON '14'14
DevOpsDays TaipeiDevOpsDays Taipei '17'17
What Mitake is
三竹資訊
● Qmi:企業內部即時通訊軟體
●
全國最大的企業簡訊平台
● 市佔近 100% 的行動下單
● 市佔近 70% 的行動銀行
●
企業內部應用、產壽險、金融相關政府機關
● 行動股市、三竹小股王、台灣匯率、 MicroCoin 、兌彩券
GitHubGitHub mitaketwmitaketw
4
Agenda
● OpenData
● OpenAPI
● WebHooks
5
OpenData
6
Availability and Access
7
Availability and Access
●
資料必須完整釋出
8
Availability and Access
●
資料必須完整釋出
●
只能依照再製的成本徵收適當的費用
9
Availability and Access
●
資料必須完整釋出
●
只能依照再製的成本徵收適當的費用
●
最好能提供網路下載
10
Availability and Access
●
資料必須完整釋出
●
只能依照再製的成本徵收適當的費用
●
最好能提供網路下載
●
提供的資料格式必須是適用和可被修改的
11
Re-use and Redistribution
12
Re-use and Redistribution
●
資料釋出時必須採用允許資料的重新使用和散播
的授權聲明
13
Re-use and Redistribution
●
資料釋出時必須採用允許資料的重新使用和散播
的授權聲明
●
允許與其他資料混合使用
14
Universal Participation
15
Universal Participation
●
任何人都可使用,重新使用和散佈這些資料
16
Universal Participation
●
任何人都可使用,重新使用和散佈這些資料
●
不能限制資料使用的範圍,或是使用者的資格
17
可互通性
interoperability
18
可互通性 - interoperability
19
可互通性 - interoperability
● 不同的系統與組織可以共同運作 (inter-operate)
的能力
20
可互通性 - interoperability
● 不同的系統與組織可以共同運作 (inter-operate)
的能力
● 讓不同的資料集 (datasets) 可以彼此引用或是相
互混用的能力
21
OpenData
22
OpenData
23
OpenAPI
OpenData
24
OpenAPI
25
OpenAPI
政府
26
唐鳳對於 OpenAPI 的看法 - 1
27
唐鳳對於 OpenAPI 的看法 - 1
● 自動發現 - API Discovery
28
唐鳳對於 OpenAPI 的看法 - 1
● 自動發現 - API Discovery
● metadata 包含網站上所有機器可讀的部分放在哪
裡、用什麼方式可以自動界接
29
唐鳳對於 OpenAPI 的看法 - 1
● 自動發現 - API Discovery
● metadata 包含網站上所有機器可讀的部分放在哪
裡、用什麼方式可以自動界接
●
寫一支程式就能把所有公務機關網站處理好
30
唐鳳對於 OpenAPI 的看法 - 2
31
唐鳳對於 OpenAPI 的看法 - 2
●
機器可寫入,目前階段只有做到機器可讀
32
唐鳳對於 OpenAPI 的看法 - 2
●
機器可寫入,目前階段只有做到機器可讀
●
公務體系除非一開始就約定好要用完全相同的結
構資料,不然很難做到跨機關的界接
33
唐鳳對於 OpenAPI 的看法 - 2
●
機器可寫入,目前階段只有做到機器可讀
●
公務體系除非一開始就約定好要用完全相同的結
構資料,不然很難做到跨機關的界接
●
簽公文、報稅時,不一定得用原廠商設計的介面
34
唐鳳對於 OpenAPI 的看法 - 2
●
機器可寫入,目前階段只有做到機器可讀
●
公務體系除非一開始就約定好要用完全相同的結
構資料,不然很難做到跨機關的界接
●
簽公文、報稅時,不一定得用原廠商設計的介面
●
當新載具出現時,可以接到機器可寫入的端口,
不需要全部重寫一遍
35
唐鳳對於 OpenAPI 的看法 - 2
●
機器可寫入,目前階段只有做到機器可讀
●
公務體系除非一開始就約定好要用完全相同的結
構資料,不然很難做到跨機關的界接
●
簽公文、報稅時,不一定得用原廠商設計的介面
●
當新載具出現時,可以接到機器可寫入的端口,
不需要全部重寫一遍
●
當每個系統都具備機器可寫入的概念,就能通通
界接到同一地方,做各式各樣的應用
36
我的補充
37
我的補充
● 公文系統: MSON, git, GPG key
38
我的補充
● 公文系統: MSON, git, GPG key
– MSON DSL :對公文格式標準化
39
我的補充
● 公文系統: MSON, git, GPG key
– MSON DSL :對公文格式標準化
– git, GPG key :保證不被竄改
40
我的補充
● 公文系統: MSON, git, GPG key
– MSON DSL :對公文格式標準化
– git, GPG key :保證不被竄改
● 報稅系統: Chrome Extension, OpenAPI
41
我的補充
● 公文系統: MSON, git, GPG key
– MSON DSL :對公文格式標準化
– git, GPG key :保證不被竄改
● 報稅系統: Chrome Extension, OpenAPI
– Chrome Extension :強化報稅體驗
42
我的補充
● 公文系統: MSON, git, GPG key
– MSON DSL :對公文格式標準化
– git, GPG key :保證不被竄改
● 報稅系統: Chrome Extension, OpenAPI
– Chrome Extension :強化報稅體驗
– OpenAPI :讓各家廠商深度整合自家服務
43
Live DEMO
44
OpenAPI
45
OpenAPI
個人
46
OpenAPI 實作
47
OpenAPI 實作
● 把 OpenData 做成 Library
48
OpenAPI 實作
● 把 OpenData 做成 Library
● 把 OpenData 用 agent 拉回 server ,轉成 OpenAPI
49
OpenAPI 實作
● 把 OpenData 做成 Library
● 把 OpenData 用 agent 拉回 server ,轉成 OpenAPI
● 把網路服務的內部 API 轉為 OpenAPI
50
1
51
OpenData
1
52
OpenData
1
53
Library
OpenData
1
54
以 tw.kewang.cwb 為例
55
以 tw.kewang.cwb 為例
● 申請 APIKEY
56
以 tw.kewang.cwb 為例
● 申請 APIKEY
● 了解 data schema
57
以 tw.kewang.cwb 為例
● 申請 APIKEY
● 了解 data schema
●
回傳原始格式及易用格式
58
以 tw.kewang.cwb 為例
● 申請 APIKEY
● 了解 data schema
●
回傳原始格式及易用格式
● 使用 SemVer 定義版號
59
以 tw.kewang.cwb 為例
● 申請 APIKEY
● 了解 data schema
●
回傳原始格式及易用格式
● 使用 SemVer 定義版號
● 使用 GitHub 管理
60
以 tw.kewang.cwb 為例
● 申請 APIKEY
● 了解 data schema
●
回傳原始格式及易用格式
● 使用 SemVer 定義版號
● 使用 GitHub 管理
● 撰寫 JavaDoc
61
以 tw.kewang.cwb 為例
● 申請 APIKEY
● 了解 data schema
●
回傳原始格式及易用格式
● 使用 SemVer 定義版號
● 使用 GitHub 管理
● 撰寫 JavaDoc
● 上傳到 Maven Central
62
缺點
63
缺點
● 沒有 API 可用
64
缺點
● 沒有 API 可用
● 需要為每個程式語言都寫一個 Library
65
缺點
● 沒有 API 可用
● 需要為每個程式語言都寫一個 Library
● vendor 變更 data schema 時無法立即得知
66
Live DEMO
67
2
68
OpenData
2
69
OpenData
1
1
2
70
agent
OpenData
2
1
71
agent
OpenData
2
1
2
72
agent
OpenData
server
2
1
2
73
agent
OpenData
server
1
2
2
3
74
agent
OpenData
server
OpenAPI
2
1
2
3
75
實作方式
76
實作方式
● agent 定時取得 OpenData 並將其存至 server 內
77
實作方式
● agent 定時取得 OpenData 並將其存至 server 內
● server 提供 OpenAPI 給開發者使用
78
實作方式
● agent 定時取得 OpenData 並將其存至 server 內
● server 提供 OpenAPI 給開發者使用
● 使用 APIKEY 管理
79
實作方式
● agent 定時取得 OpenData 並將其存至 server 內
● server 提供 OpenAPI 給開發者使用
● 使用 APIKEY 管理
● 了解 data schema
80
實作方式
● agent 定時取得 OpenData 並將其存至 server 內
● server 提供 OpenAPI 給開發者使用
● 使用 APIKEY 管理
● 了解 data schema
● 規劃 API 版本
81
實作方式
● agent 定時取得 OpenData 並將其存至 server 內
● server 提供 OpenAPI 給開發者使用
● 使用 APIKEY 管理
● 了解 data schema
● 規劃 API 版本
● 撰寫 API 文件
82
優點
83
優點
● APIKEY
84
優點
● APIKEY
– 紀錄使用量、來源
85
優點
● APIKEY
– 紀錄使用量、來源
– 限制使用量、來源
86
優點
● APIKEY
– 紀錄使用量、來源
– 限制使用量、來源
● 不怕 vendor 變更 data schema
87
優點
● APIKEY
– 紀錄使用量、來源
– 限制使用量、來源
● 不怕 vendor 變更 data schema
– 變更時 agent 會 parse 失敗,就不會上傳到 server
88
缺點
89
缺點
● 定時不間斷取得 OpenData 易被誤認 DDoS
90
缺點
● 定時不間斷取得 OpenData 易被誤認 DDoS
● 無法完全即時更新 OpenData
91
NO Live DEMO
92
3
93
Internal API
3
94
Internal API
3
95
Adapter
Internal API
3
96
Adapter
Internal API
3
97
Adapter
Internal API
OpenAPI 3
98
實作方式
99
實作方式
● 使用 Adapter 將 OpenAPI 及 Internal API 互轉
100
實作方式
● 使用 Adapter 將 OpenAPI 及 Internal API 互轉
● 使用 APIKEY 管理
101
實作方式
● 使用 Adapter 將 OpenAPI 及 Internal API 互轉
● 使用 APIKEY 管理
● 使用 middleware 將 APIKEY 轉換回 Internal API
102
實作方式
● 使用 Adapter 將 OpenAPI 及 Internal API 互轉
● 使用 APIKEY 管理
● 使用 middleware 將 APIKEY 轉換回 Internal API
● 撰寫 API 文件
103
優點
104
優點
● Adapter
105
優點
● Adapter
– Internal API 及 OpenAPI 的 request 及 response 欄位不
同,使用 Adapter 將兩者做轉換
106
優點
● Adapter
– Internal API 及 OpenAPI 的 request 及 response 欄位不
同,使用 Adapter 將兩者做轉換
● APIKEY
107
優點
● Adapter
– Internal API 及 OpenAPI 的 request 及 response 欄位不
同,使用 Adapter 將兩者做轉換
● APIKEY
– 取代帳號密碼,保障敏感資料不外洩
108
優點
● Adapter
– Internal API 及 OpenAPI 的 request 及 response 欄位不
同,使用 Adapter 將兩者做轉換
● APIKEY
– 取代帳號密碼,保障敏感資料不外洩
● 撰寫 API 文件
109
優點
● Adapter
– Internal API 及 OpenAPI 的 request 及 response 欄位不
同,使用 Adapter 將兩者做轉換
● APIKEY
– 取代帳號密碼,保障敏感資料不外洩
● 撰寫 API 文件
– API Blueprint : Markdown, MSON
110
優點
● Adapter
– Internal API 及 OpenAPI 的 request 及 response 欄位不
同,使用 Adapter 將兩者做轉換
● APIKEY
– 取代帳號密碼,保障敏感資料不外洩
● 撰寫 API 文件
– API Blueprint : Markdown, MSON
– Swagger : YAML, JSON
111
Live DEMO
112
WebHooks
https://webhooks.kewang.tw
113
client
114
1
client
115
server
1
client
116
server
1
client
2
117
server
1
client
2
2'
118
server
1 vendor
client
2
2'
119
實作方式 - POST action
120
實作方式 - POST action
● 將 server 的 request 及 response 重新使用 POST
轉發到 vendor
121
實作方式 - 獨立 thread
122
實作方式 - 獨立 thread
● 避免影響原 API 運作
123
實作方式 - 獨立 thread
● 避免影響原 API 運作
● 在 middleware 新開 thread 或丟到 MQ 執行
124
實作方式 - 使用 SSL
125
實作方式 - 使用 SSL
● �vendor 不使用 SSL
126
實作方式 - 使用 SSL
● �vendor 不使用 SSL
● �vendor 使用自簽憑證
127
實作方式 - 使用 SSL
● �vendor 不使用 SSL
● �vendor 使用自簽憑證
● �vendor 使用合法憑證
128
實作方式 - request token
129
實作方式 - request token
● server 將資料傳送至 vendor 前,將雙方約定好的
token 放在 header 中再傳送
130
實作方式 - request token
● server 將資料傳送至 vendor 前,將雙方約定好的
token 放在 header 中再傳送
● vendor 比較 header 是否與約定好的 token 相同
131
實作方式 - request token
● server 將資料傳送至 vendor 前,將雙方約定好的
token 放在 header 中再傳送
● vendor 比較 header 是否與約定好的 token 相同
– 相同:資料未被竄改
132
實作方式 - request token
● server 將資料傳送至 vendor 前,將雙方約定好的
token 放在 header 中再傳送
● vendor 比較 header 是否與約定好的 token 相同
– 相同:資料未被竄改
– 不相同:資料被竄改
133
實作方式 - HMAC-SHA256
134
實作方式 - HMAC-SHA256
● 將要傳送的資料使用 server 及 vendor 約定好的
token 計算出 HMAC-SHA256(H1)
135
實作方式 - HMAC-SHA256
● 將要傳送的資料使用 server 及 vendor 約定好的
token 計算出 HMAC-SHA256(H1)
● server 將資料及 HMAC-SHA256 直接傳送至
vendor
136
實作方式 - HMAC-SHA256
● 將要傳送的資料使用 server 及 vendor 約定好的
token 計算出 HMAC-SHA256(H1)
● server 將資料及 HMAC-SHA256 直接傳送至
vendor
● vendor 使用 token 將接收到的資料計算出 HMAC-
SHA256(H2)
137
實作方式 - HMAC-SHA256
● 將要傳送的資料使用 server 及 vendor 約定好的
token 計算出 HMAC-SHA256(H1)
● server 將資料及 HMAC-SHA256 直接傳送至
vendor
● vendor 使用 token 將接收到的資料計算出 HMAC-
SHA256(H2)
● vendor 比較 H1 是否與 H2 相同
138
實作方式 - HMAC-SHA256
● 將要傳送的資料使用 server 及 vendor 約定好的
token 計算出 HMAC-SHA256(H1)
● server 將資料及 HMAC-SHA256 直接傳送至
vendor
● vendor 使用 token 將接收到的資料計算出 HMAC-
SHA256(H2)
● vendor 比較 H1 是否與 H2 相同
– 相同:資料未被竄改
139
實作方式 - HMAC-SHA256
● 將要傳送的資料使用 server 及 vendor 約定好的
token 計算出 HMAC-SHA256(H1)
● server 將資料及 HMAC-SHA256 直接傳送至
vendor
● vendor 使用 token 將接收到的資料計算出 HMAC-
SHA256(H2)
● vendor 比較 H1 是否與 H2 相同
– 相同:資料未被竄改
– 不相同:資料被竄改
140
實作方式 - 相同 data schema
141
實作方式 - 相同 data schema
● 必須與 OpenAPI 的 data schema 相同
142
Live DEMO
143
Summary
144
Summary
145
Summary
● OpenAPI
146
Summary
● OpenAPI
– 清楚的文件
147
Summary
● OpenAPI
– 清楚的文件
– 認證:別帶帳密,改用 token
148
Summary
● OpenAPI
– 清楚的文件
– 認證:別帶帳密,改用 token
– 用 middleware
149
Summary
● OpenAPI
– 清楚的文件
– 認證:別帶帳密,改用 token
– 用 middleware
● WebHooks
150
Summary
● OpenAPI
– 清楚的文件
– 認證:別帶帳密,改用 token
– 用 middleware
● WebHooks
– 清楚的文件
151
Summary
● OpenAPI
– 清楚的文件
– 認證:別帶帳密,改用 token
– 用 middleware
● WebHooks
– 清楚的文件
– 獨立 thread 運作
152
Summary
● OpenAPI
– 清楚的文件
– 認證:別帶帳密,改用 token
– 用 middleware
● WebHooks
– 清楚的文件
– 獨立 thread 運作
– 驗證來源是否合法
153
Summary - 潛在服務
154
Summary - 潛在服務
●
工時系統
155
Summary - 潛在服務
●
工時系統
●
日報系統
156
Summary - 潛在服務
●
工時系統
●
日報系統
● CRM
157
Summary - 潛在服務
●
工時系統
●
日報系統
● CRM
● ERP
158
References
●
什麼是開放資料?
●
2017-03-22 共通性應用程式介面開放規範研議
●
數位政委唐鳳:Open Data只是基礎,下個發展目標
是Open API
●
對於公文系統的建議
●
刷綜所稅系統的存在感
● rest - Best practices for API versioning? - Stack Ove
rflow
● Verifying requests from Slack | Slack
159
160
● iOS
● Android
● Backend
● Hadoop

Weitere ähnliche Inhalte

Was ist angesagt?

業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス土岐 孝平
 
SEILはIIJのココに使われている
SEILはIIJのココに使われているSEILはIIJのココに使われている
SEILはIIJのココに使われているIIJ
 
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介Recruit Technologies
 
ソーシャルゲームスケールアウトの歴史
ソーシャルゲームスケールアウトの歴史ソーシャルゲームスケールアウトの歴史
ソーシャルゲームスケールアウトの歴史Drecom Co., Ltd.
 
僕なりのAtlassianの管理メソッド
僕なりのAtlassianの管理メソッド僕なりのAtlassianの管理メソッド
僕なりのAtlassianの管理メソッドNarichika Kajihara
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Kentaro Yoshida
 
ChatGPTを使った要件定義のRDRA的考察.pdf
ChatGPTを使った要件定義のRDRA的考察.pdfChatGPTを使った要件定義のRDRA的考察.pdf
ChatGPTを使った要件定義のRDRA的考察.pdfZenji Kanzaki
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかYusuke Suzuki
 
[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメ
[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメ[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメ
[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメInsight Technology, Inc.
 
Twilioで作る、電話レスコールセンター
Twilioで作る、電話レスコールセンターTwilioで作る、電話レスコールセンター
Twilioで作る、電話レスコールセンター瑛一 西口
 
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)Atsushi Kurumada
 
Equinix osaka multi-cloud_day20190621
Equinix osaka multi-cloud_day20190621Equinix osaka multi-cloud_day20190621
Equinix osaka multi-cloud_day20190621Kiyomichi Arai
 
ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出Tetsutaro Watanabe
 
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例Takashi Suzuki
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...Holden Karau
 
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」akipii Oga
 
マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話Makoto Haruyama
 
ビズリーチの機械学習基盤
ビズリーチの機械学習基盤ビズリーチの機械学習基盤
ビズリーチの機械学習基盤Naoto Migita
 
Defining Achievable Scope for your BI Initiative
Defining Achievable Scope for your BI InitiativeDefining Achievable Scope for your BI Initiative
Defining Achievable Scope for your BI InitiativeJeff Block
 

Was ist angesagt? (20)

業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス
 
SEILはIIJのココに使われている
SEILはIIJのココに使われているSEILはIIJのココに使われている
SEILはIIJのココに使われている
 
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
 
ソーシャルゲームスケールアウトの歴史
ソーシャルゲームスケールアウトの歴史ソーシャルゲームスケールアウトの歴史
ソーシャルゲームスケールアウトの歴史
 
僕なりのAtlassianの管理メソッド
僕なりのAtlassianの管理メソッド僕なりのAtlassianの管理メソッド
僕なりのAtlassianの管理メソッド
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
 
ChatGPTを使った要件定義のRDRA的考察.pdf
ChatGPTを使った要件定義のRDRA的考察.pdfChatGPTを使った要件定義のRDRA的考察.pdf
ChatGPTを使った要件定義のRDRA的考察.pdf
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメ
[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメ[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメ
[2018/9/27(木): 三木会@大阪] プログラミング無しでここまでできる!Neural Network Console活用のススメ
 
Twilioで作る、電話レスコールセンター
Twilioで作る、電話レスコールセンターTwilioで作る、電話レスコールセンター
Twilioで作る、電話レスコールセンター
 
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
 
Equinix osaka multi-cloud_day20190621
Equinix osaka multi-cloud_day20190621Equinix osaka multi-cloud_day20190621
Equinix osaka multi-cloud_day20190621
 
ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出
 
事業成長を加速するじげんのコーポレート部門
事業成長を加速するじげんのコーポレート部門事業成長を加速するじげんのコーポレート部門
事業成長を加速するじげんのコーポレート部門
 
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
 
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法  ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
 
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
 
マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話
 
ビズリーチの機械学習基盤
ビズリーチの機械学習基盤ビズリーチの機械学習基盤
ビズリーチの機械学習基盤
 
Defining Achievable Scope for your BI Initiative
Defining Achievable Scope for your BI InitiativeDefining Achievable Scope for your BI Initiative
Defining Achievable Scope for your BI Initiative
 

Ähnlich wie 如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化

Scaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ DcardScaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ DcardJui An Huang (黃瑞安)
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOpsAndrew Wu
 
那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-ControlMu Chun Wang
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC
 
4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdf4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdfssuserd6c7621
 
How to ASP.NET MVC4
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4Daniel Chou
 
OpenWebSchool - 03 - PHP Part II
OpenWebSchool - 03 - PHP Part IIOpenWebSchool - 03 - PHP Part II
OpenWebSchool - 03 - PHP Part IIHung-yu Lin
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17twMVC
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Justin Lin
 
Web server and_cgi
Web server and_cgiWeb server and_cgi
Web server and_cgixu liwei
 
Ops as Code using Serverless
Ops as Code using Serverless Ops as Code using Serverless
Ops as Code using Serverless Rick Hwang
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术团队
 
Php Webservers
Php WebserversPhp Webservers
Php Webserverssamon127
 
SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)毅 吕
 
Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527Jia Yu Lin
 

Ähnlich wie 如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化 (20)

Scaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ DcardScaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ Dcard
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢
 
4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdf4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdf
 
How to ASP.NET MVC4
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4
 
Html01
Html01Html01
Html01
 
OpenWebSchool - 03 - PHP Part II
OpenWebSchool - 03 - PHP Part IIOpenWebSchool - 03 - PHP Part II
OpenWebSchool - 03 - PHP Part II
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17
 
RESTful API Design
RESTful API DesignRESTful API Design
RESTful API Design
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 
Web server and_cgi
Web server and_cgiWeb server and_cgi
Web server and_cgi
 
使用 Controller
使用 Controller使用 Controller
使用 Controller
 
Ops as Code using Serverless
Ops as Code using Serverless Ops as Code using Serverless
Ops as Code using Serverless
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
 
Php Webservers
Php WebserversPhp Webservers
Php Webservers
 
Php Webservers
Php WebserversPhp Webservers
Php Webservers
 
SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)SAE平台的灵活应用(吕毅、魏世江)
SAE平台的灵活应用(吕毅、魏世江)
 
使用 Controller
使用 Controller使用 Controller
使用 Controller
 
Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527Build line notify bot by lotify and create client library by swagger 20200527
Build line notify bot by lotify and create client library by swagger 20200527
 

Mehr von Mu Chun Wang

如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進Mu Chun Wang
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocompleteMu Chun Wang
 
你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事Mu Chun Wang
 
網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體Mu Chun Wang
 
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統Mu Chun Wang
 
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能Mu Chun Wang
 
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談Funliday 新創生活甘苦談
Funliday 新創生活甘苦談Mu Chun Wang
 
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度Mu Chun Wang
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件Mu Chun Wang
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題Mu Chun Wang
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構Mu Chun Wang
 
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?Mu Chun Wang
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事Mu Chun Wang
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 LibraryMu Chun Wang
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌Mu Chun Wang
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一Mu Chun Wang
 
團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作Mu Chun Wang
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務Mu Chun Wang
 
你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?Mu Chun Wang
 

Mehr von Mu Chun Wang (20)

如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocomplete
 
你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事
 
網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體
 
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統
 
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
 
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談Funliday 新創生活甘苦談
Funliday 新創生活甘苦談
 
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
 
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 Library
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一
 
團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 
你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?你有想過畢業九年後的你會變什麼樣子嗎?
你有想過畢業九年後的你會變什麼樣子嗎?
 

如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化