新⼈人報告
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 物件導向介紹

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
  • 3.
  • 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
  • 9.
  • 10.
    SOAP • SOAP:全名為 SimpleObject Access Protocol(簡易物件通訊協定) • 以 XML 資料格式為交換基礎,⽤用於交換不 同機器/平台間的訊息傳遞,可以將網站內 容的呈現與資料作分離 • 使⽤用 SOAP 作為遠端程序呼叫的標準資料 交換格式,並配合WSDL與UDDI,建⽴立完 整的Web Service架構 • 可使⽤用 HTTP 通訊協定,傳遞純⽂文字資料, 可輕易通過防⽕火牆 • SOAP 是資料量很少的協定,可減輕伺服端 的負擔
  • 11.
  • 12.
    什麼是 XML-RPC? • 遠端程序呼叫(RemoteProcedure 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
  • 14.
  • 15.
    JavaScript OPP • 物件導向語⾔言Object-Oriented Language, OPP • JavaScript則主要⽤用於互動式網⾴頁,最常⾒見形式為居於HTML⽂文件中,提供單靠 HTML無法達到的互動。 • 特性:封裝、繼承、多形 • 程式碼可再利⽤用,物件結合資料(store)與⾏行為(act),建⽴立⼀一種新的資料型別
 (物件 = 資料 + ⾏行為,Object=Property + Method)
  • 16.
    JavaScript OPP 使⽤用者⾃自訂物件 • TheClass:把 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
 
 
 

  • 19.
  • 20.
    專有名詞 • HTTP(Hypertext TransferProtocol):超⽂文件傳輸協定 • 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 物件導向介紹