2015.07.17 新人報告(2)
TRANSCRIPT
新⼈人報告
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
何謂 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
RESTful Web API
• ⺫⽬目前網路上各⼤大網路公司都提供 RESTful Web API(或稱 RESTful API)來存取提供的服務和資源,例如:
• 在 ProgrammableWeb 網站可以查詢各種 Web API,其網址為:http://www.programmableweb.com/apis/directory
SOAP
• SOAP:全名為 Simple Object Access Protocol(簡易物件通訊協定)
• 以 XML 資料格式為交換基礎,⽤用於交換不同機器/平台間的訊息傳遞,可以將網站內容的呈現與資料作分離
• 使⽤用 SOAP 作為遠端程序呼叫的標準資料交換格式,並配合WSDL與UDDI,建⽴立完整的Web Service架構
• 可使⽤用 HTTP 通訊協定,傳遞純⽂文字資料,可輕易通過防⽕火牆
• SOAP 是資料量很少的協定,可減輕伺服端的負擔
什麼是 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 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 來代表「⾃自⼰己」。
專有名詞• 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 物件導向介紹