SlideShare a Scribd company logo
新⼈人報告
PChome EC / Technical Department

報告⼈人:莊智偉
RESTful, REST-like, SOAP, XML-RPC
Javascript OOP
2015.07.20 (⼀一)
oreword
• Web Service 的概念則是讓網站的功能更加的單純化,只扮演資料提供者的⾓角⾊色

• REST, SOAP, XML-RPC 為三種主流的 Web 服務實現⽅方案

• REST 模式與複雜的 SOAP 和 XML-RPC 相⽐比更加簡潔,越來越多的 WEB 服務
開始採⽤用 REST ⾵風格設計和實現(ex: 圖書查找、 )

• 傳統的 REST 作法稱為 REST-like
前⾔言F
RESTful, REST-like
何謂 REST
• Nouns - 名詞
為 Resources (資源) 定義唯⼀一的識別,在 HTTP 中我們借⽤用 URI
為資源進⾏行識別定義,範例:http://book.com/books/{isbn}

• Verbs - 動詞
對資源進⾏行操作,在 HTTP 中使⽤用 

GET, POST, PUT, DELETE 來操作資

源。HTTP Method 總共定義了以下⼋八

種:OPTIONS, GET, HEAD, POST, 

PUT, DELETE, TRACE, CONNECT。

• Content types - 格式
REST 所謂的 Representation,在 HTTP 中就是 Header 所送出
的 Content-type,然⽽而 Content-type 是使⽤用 MIME Types 進⾏行
定義。
REST 與 RESTful 說明
• Representational State Transfer:表徵性狀態傳輸

• 分散式軟體系統架構樣式

• 通常基於使⽤用HTTP,URI,和XML以及HTML這些現有的協議和標準

• 資源是由URI(即網址)來識別,操作包括取得、新增、修改、刪除,正好對應
於HTTP協議提供的 GET、POST、PUT 和 DELETE ⽅方法

• 資料格式為XML或者HTML,也可以是任何其它的格式(ex: JSON)

• 為輕量級的 Web 服務,⼤大幅降低對HTTP連接的重複請求資源消耗

• 使⽤用 HTTP 並遵循 REST 原則的 Web 

服務,稱作 RESTful
• 以 URL 定位資源,根據 HTTP 內容指⽰示操作動作與回應訊息,符合上述實作⽅方
式的網路服務,就稱之為 RESTful Web Service
REST 與 RESTful 說明
REST 與 RESTful 說明
OK Bad Request Not Found
RESTful Web API
• ⺫⽬目前網路上各⼤大網路公司都提供 RESTful Web API(或稱 RESTful API)來存
取提供的服務和資源,例如:

• 在 ProgrammableWeb 網站可以查詢各種 Web API,其網址為:

http://www.programmableweb.com/apis/directory
SOAP
SOAP
• SOAP:全名為 Simple Object Access
Protocol(簡易物件通訊協定)

• 以 XML 資料格式為交換基礎,⽤用於交換不
同機器/平台間的訊息傳遞,可以將網站內
容的呈現與資料作分離

• 使⽤用 SOAP 作為遠端程序呼叫的標準資料
交換格式,並配合WSDL與UDDI,建⽴立完
整的Web Service架構

• 可使⽤用 HTTP 通訊協定,傳遞純⽂文字資料,
可輕易通過防⽕火牆

• SOAP 是資料量很少的協定,可減輕伺服端
的負擔
SOAP vs. REST
什麼是 XML-RPC?
• 遠端程序呼叫(Remote Procedure Call,RPC)

• ⼆二台電腦在網路上透過 XML 來相互通訊,⼀一台叫作 client,⼀一台叫作 server,
client 端發出 XML-RPC 的請求給 server 端,server 端在接收到請求並處理完畢後
會再發出回應來告知 client 端

• 接受的呼叫參數是 XML ⽂文件,⽽而⾮非⼀一組 URL 變數,使⽤用 HTTP POST ⽅方法將它傳
送給網路服務。
XML⽂文件
1.  <?xml version="1.0" encoding="big5"?>
2.  <!-- DTD -->
3.  <!DOCTYPE sec-hand[
4.  <!ELEMENT sec-hand books >
5.  <!ELEMENT books number* >
6.  <!ELEMENT number product, price, year, description *>
7.  <!ELEMENT product #PCDATA >
8.  <!ELEMENT price #PCDATA >
9.  <!ELEMENT year #PCDATA >
10.  <!ELEMENT description #PCDATA >
11.  <!ATTLIST number id CDATA #REQUIRED>
12.  ]>
13.  <!-- XML -->
14.  <sec-hand>
15.  <books>
16.  <number id="bo-1">
17.  <product> </product>
18.  <price>200 </price>
19.  <year>3 </year>
20.  <description> </description>
21.  </number>
22.  </books>
23.  </sec-hand>
DTD
DTD
XML
JavaScript OOP
JavaScript OPP
• 物件導向語⾔言 Object-Oriented Language, OPP

• JavaScript則主要⽤用於互動式網⾴頁,最常⾒見形式為居於HTML⽂文件中,提供單靠
HTML無法達到的互動。

• 特性:封裝、繼承、多形

• 程式碼可再利⽤用,物件結合資料(store)與⾏行為(act),建⽴立⼀一種新的資料型別

(物件 = 資料 + ⾏行為,Object=Property + Method)
JavaScript OPP
使⽤用者⾃自訂物件
• The Class:把 function 看做是 class



• The Object (Class Instance):創建物件只需要使⽤用 new 即可

• Constructor:在物件被產⽣生的那⼀一刻被呼叫,是以⼀一個 method 的狀態存在於
class 中







JavaScript OPP
使⽤用者⾃自訂物件
• Property (object attribute):想成是附著在 class 內部的變數,當物件在執⾏行
時,可以使⽤用 this 來代表「⾃自⼰己」。







JavaScript OPP
使⽤用者⾃自訂物件
• Method:methods 有著類似於 property 的概念,不同點在於他們是可以執⾏行
的 function







Thank You
專有名詞
• HTTP(Hypertext Transfer Protocol):超⽂文件傳輸協定

• HTTPS(HyperText Transfer Protocol Secure):超⽂文件
傳輸協定和SSL/TLS的組合

• HTML(HyperText Markup Language):超⽂文件標語語
⾔言

• XML(Extensible Markup Language):可延伸標記語⾔言

• JSON(JavaScript Object Notation):Javascript 物件
符號

• REST(Representational State Transfer):表徵性狀態
傳輸

• RPC(Remote Procedure Call):遠端程序呼叫

• SOA(Service-oriented architecture):服務導向架構

• URI(Universal Resource Identifier):通⽤用資源識別項

• URL(Uniform Resource Location):統⼀一資源定位符

• URN(Uniform Resource Name):統⼀一資源名稱
• SOAP( Simple Object Access
Protocol):簡易物件通訊協定

• WSDL(Web Services Description
Language):網⾴頁服務描述語⾔言

• UDDI(Universal Description,
Discovery, and Integration):統⼀一描
述,發現,集成

• MIME(MIME,Multipurpose Internet
Mail Extensions):多⽤用途網際網路郵
件擴展

• DTD(Document Type Definition):
⽂文件格式類型定義
資料來源
• URI與URL的區別

• 淺談 REST 軟體架構⾵風格(Part I)

• 淺談 REST 軟體架構⾵風格(Part II)

• Http status code definitions

• 重新介紹 JavaScript

• JavaScript 物件導向介紹

More Related Content

Similar to 2015.07.17 新人報告(2)

開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0) My own sweet home!
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Railsshaokun
 
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用ericpi Bi
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Gelis Wu
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
Chieh Lin
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
Xiujun Ma
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renrend0nn9n
 
IDs书友会 - 主题3 - 开场白 · 商业应用云实战
IDs书友会 - 主题3 - 开场白 · 商业应用云实战IDs书友会 - 主题3 - 开场白 · 商业应用云实战
IDs书友会 - 主题3 - 开场白 · 商业应用云实战
IDs Club 澳洲互联网俱乐部
 
Ajax设计技术
Ajax设计技术Ajax设计技术
Ajax设计技术yiditushe
 
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
Li JianYe
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
Twinsen Liang
 
difference between query string and hash
difference between query string and hashdifference between query string and hash
difference between query string and hash
fool2fish
 
史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js
Frank Cheung
 
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
Amazon Web Services
 
Web development introduced history and future
Web development introduced history and futureWeb development introduced history and future
Web development introduced history and future
jarryli
 
RESTful
RESTfulRESTful
RESTful
PingLun Liao
 

Similar to 2015.07.17 新人報告(2) (20)

Intro to rest
Intro to restIntro to rest
Intro to rest
 
Intro to REST
Intro to RESTIntro to REST
Intro to REST
 
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
 
Rest Ruby On Rails
Rest Ruby On RailsRest Ruby On Rails
Rest Ruby On Rails
 
Jsp讲义
Jsp讲义Jsp讲义
Jsp讲义
 
COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用COSCUP 2010 - node.JS 於互動式網站之應用
COSCUP 2010 - node.JS 於互動式網站之應用
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介Asp.net mvc 4 web api 開發簡介
Asp.net mvc 4 web api 開發簡介
 
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development FundamentalsExam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renren
 
IDs书友会 - 主题3 - 开场白 · 商业应用云实战
IDs书友会 - 主题3 - 开场白 · 商业应用云实战IDs书友会 - 主题3 - 开场白 · 商业应用云实战
IDs书友会 - 主题3 - 开场白 · 商业应用云实战
 
Ajax设计技术
Ajax设计技术Ajax设计技术
Ajax设计技术
 
运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践运维系统开发与Rails 3页面开发实践
运维系统开发与Rails 3页面开发实践
 
[2008]网站重构 -who am i
[2008]网站重构 -who am i[2008]网站重构 -who am i
[2008]网站重构 -who am i
 
difference between query string and hash
difference between query string and hashdifference between query string and hash
difference between query string and hash
 
史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js
 
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
如何利用 Amazon EMR 及Athena 打造高成本效益的大數據環境
 
Web development introduced history and future
Web development introduced history and futureWeb development introduced history and future
Web development introduced history and future
 
RESTful
RESTfulRESTful
RESTful
 

2015.07.17 新人報告(2)

  • 1. 新⼈人報告 PChome EC / Technical Department 報告⼈人:莊智偉 RESTful, REST-like, SOAP, XML-RPC Javascript OOP 2015.07.20 (⼀一)
  • 2. oreword • Web Service 的概念則是讓網站的功能更加的單純化,只扮演資料提供者的⾓角⾊色 • REST, SOAP, XML-RPC 為三種主流的 Web 服務實現⽅方案 • REST 模式與複雜的 SOAP 和 XML-RPC 相⽐比更加簡潔,越來越多的 WEB 服務 開始採⽤用 REST ⾵風格設計和實現(ex: 圖書查找、 ) • 傳統的 REST 作法稱為 REST-like 前⾔言F
  • 4. 何謂 REST • Nouns - 名詞 為 Resources (資源) 定義唯⼀一的識別,在 HTTP 中我們借⽤用 URI 為資源進⾏行識別定義,範例:http://book.com/books/{isbn} • Verbs - 動詞 對資源進⾏行操作,在 HTTP 中使⽤用 
 GET, POST, PUT, DELETE 來操作資
 源。HTTP Method 總共定義了以下⼋八
 種:OPTIONS, GET, HEAD, POST, 
 PUT, DELETE, TRACE, CONNECT。 • Content types - 格式 REST 所謂的 Representation,在 HTTP 中就是 Header 所送出 的 Content-type,然⽽而 Content-type 是使⽤用 MIME Types 進⾏行 定義。
  • 5. REST 與 RESTful 說明 • Representational State Transfer:表徵性狀態傳輸 • 分散式軟體系統架構樣式 • 通常基於使⽤用HTTP,URI,和XML以及HTML這些現有的協議和標準 • 資源是由URI(即網址)來識別,操作包括取得、新增、修改、刪除,正好對應 於HTTP協議提供的 GET、POST、PUT 和 DELETE ⽅方法 • 資料格式為XML或者HTML,也可以是任何其它的格式(ex: JSON) • 為輕量級的 Web 服務,⼤大幅降低對HTTP連接的重複請求資源消耗 • 使⽤用 HTTP 並遵循 REST 原則的 Web 
 服務,稱作 RESTful
  • 6. • 以 URL 定位資源,根據 HTTP 內容指⽰示操作動作與回應訊息,符合上述實作⽅方 式的網路服務,就稱之為 RESTful Web Service REST 與 RESTful 說明
  • 7. REST 與 RESTful 說明 OK Bad Request Not Found
  • 8. RESTful Web API • ⺫⽬目前網路上各⼤大網路公司都提供 RESTful Web API(或稱 RESTful API)來存 取提供的服務和資源,例如: • 在 ProgrammableWeb 網站可以查詢各種 Web API,其網址為:
 http://www.programmableweb.com/apis/directory
  • 10. SOAP • SOAP:全名為 Simple Object Access Protocol(簡易物件通訊協定) • 以 XML 資料格式為交換基礎,⽤用於交換不 同機器/平台間的訊息傳遞,可以將網站內 容的呈現與資料作分離 • 使⽤用 SOAP 作為遠端程序呼叫的標準資料 交換格式,並配合WSDL與UDDI,建⽴立完 整的Web Service架構 • 可使⽤用 HTTP 通訊協定,傳遞純⽂文字資料, 可輕易通過防⽕火牆 • SOAP 是資料量很少的協定,可減輕伺服端 的負擔
  • 12. 什麼是 XML-RPC? • 遠端程序呼叫(Remote Procedure Call,RPC) • ⼆二台電腦在網路上透過 XML 來相互通訊,⼀一台叫作 client,⼀一台叫作 server, client 端發出 XML-RPC 的請求給 server 端,server 端在接收到請求並處理完畢後 會再發出回應來告知 client 端 • 接受的呼叫參數是 XML ⽂文件,⽽而⾮非⼀一組 URL 變數,使⽤用 HTTP POST ⽅方法將它傳 送給網路服務。
  • 13. XML⽂文件 1.  <?xml version="1.0" encoding="big5"?> 2.  <!-- DTD --> 3.  <!DOCTYPE sec-hand[ 4.  <!ELEMENT sec-hand books > 5.  <!ELEMENT books number* > 6.  <!ELEMENT number product, price, year, description *> 7.  <!ELEMENT product #PCDATA > 8.  <!ELEMENT price #PCDATA > 9.  <!ELEMENT year #PCDATA > 10.  <!ELEMENT description #PCDATA > 11.  <!ATTLIST number id CDATA #REQUIRED> 12.  ]> 13.  <!-- XML --> 14.  <sec-hand> 15.  <books> 16.  <number id="bo-1"> 17.  <product> </product> 18.  <price>200 </price> 19.  <year>3 </year> 20.  <description> </description> 21.  </number> 22.  </books> 23.  </sec-hand> DTD DTD XML
  • 15. JavaScript OPP • 物件導向語⾔言 Object-Oriented Language, OPP • JavaScript則主要⽤用於互動式網⾴頁,最常⾒見形式為居於HTML⽂文件中,提供單靠 HTML無法達到的互動。 • 特性:封裝、繼承、多形 • 程式碼可再利⽤用,物件結合資料(store)與⾏行為(act),建⽴立⼀一種新的資料型別
 (物件 = 資料 + ⾏行為,Object=Property + Method)
  • 16. JavaScript OPP 使⽤用者⾃自訂物件 • The Class:把 function 看做是 class
 
 • The Object (Class Instance):創建物件只需要使⽤用 new 即可
 • Constructor:在物件被產⽣生的那⼀一刻被呼叫,是以⼀一個 method 的狀態存在於 class 中
 
 
 

  • 17. JavaScript OPP 使⽤用者⾃自訂物件 • Property (object attribute):想成是附著在 class 內部的變數,當物件在執⾏行 時,可以使⽤用 this 來代表「⾃自⼰己」。
 
 
 

  • 18. JavaScript OPP 使⽤用者⾃自訂物件 • Method:methods 有著類似於 property 的概念,不同點在於他們是可以執⾏行 的 function
 
 
 

  • 20. 專有名詞 • HTTP(Hypertext Transfer Protocol):超⽂文件傳輸協定 • HTTPS(HyperText Transfer Protocol Secure):超⽂文件 傳輸協定和SSL/TLS的組合 • HTML(HyperText Markup Language):超⽂文件標語語 ⾔言 • XML(Extensible Markup Language):可延伸標記語⾔言 • JSON(JavaScript Object Notation):Javascript 物件 符號 • REST(Representational State Transfer):表徵性狀態 傳輸 • RPC(Remote Procedure Call):遠端程序呼叫 • SOA(Service-oriented architecture):服務導向架構 • URI(Universal Resource Identifier):通⽤用資源識別項 • URL(Uniform Resource Location):統⼀一資源定位符 • URN(Uniform Resource Name):統⼀一資源名稱 • SOAP( Simple Object Access Protocol):簡易物件通訊協定 • WSDL(Web Services Description Language):網⾴頁服務描述語⾔言 • UDDI(Universal Description, Discovery, and Integration):統⼀一描 述,發現,集成 • MIME(MIME,Multipurpose Internet Mail Extensions):多⽤用途網際網路郵 件擴展 • DTD(Document Type Definition): ⽂文件格式類型定義
  • 21. 資料來源 • URI與URL的區別 • 淺談 REST 軟體架構⾵風格(Part I) • 淺談 REST 軟體架構⾵風格(Part II) • Http status code definitions • 重新介紹 JavaScript • JavaScript 物件導向介紹