16. What is RESTful Web Service ??
● 符合 REST Constraints 的 Web Service 設計
http://www.history.com/this-day-in-history/united-states-nicknamed-uncle-sam
Q : HTTP 不就是 REST 的實作了嗎??那到底該怎麼設計
RESTful Web Service ??
A : 只要善用 HTTP 就對了!!
17. 傳統 Web Service 設計
● 設計書籍管理系統
● 新增、刪除、修改、查詢 - CRUD
● XML Web Service
18. Web Service 傳統設計 (1)
● Web Service 網址 /books
● 新增書籍
<action>create</action>
<book isbn="A0100">
<title>I hate the REST</title>
</book>
Response : <status>ok|fail</status>
● 修改書籍
<action>edit</action>
<book isbn="A0100">
<title>I hate REST very much</title>
</book>
Response : <status>ok|fail</status>
19. Web Service 傳統設計 (1)
● 刪除書籍
<action>delete</action>
<isbn>A0010</isbn>
Response : <status>ok|fail</status>
● 查詢書籍
<action>search</action>
<isbn>A0010</isbn>
Response : <status>ok|fail</status>
20. Web Service 傳統設計 (2) 改良!?
● 更直覺的網址、更簡易 XML 內文、更通用的回應格式
<response code="0" messgae="ok">
<data/>
</respone>
● 新增書籍 /books/create
<book isbn="A0100">
<title>I hate the REST</title>
</book>
● 修改書籍 /books/update
<book isbn="A0100">
<title>I hate REST very much</title>
</book>
21. Web Service 傳統設計 (2) 改良!?
● 刪除書籍 /books/delete
<isbn>A0010</isbn>
● 查詢書籍 /books/get
<isbn>A0010</isbn>
22. Web Service 傳統設計 (3) SOAP
SOAP Request
<soapenv:Envelope>
<soapenv:Body>
<req:echo xmlns:req="http://xxx.com/MyService/">
<req:category>classifieds</req:category>
</req:echo>
</soapenv:Body>
</soapenv:Envelope>