2015.07.17 新人報告(2)

21
新報告 PChome EC / Technical Department 報告:莊智偉 RESTful, REST-like, SOAP, XML-RPC Javascript OOP 2015.07.20 ()

Upload: chih-wei-chuang

Post on 18-Aug-2015

17 views

Category:

Engineering


6 download

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

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):⽂文件格式類型定義