RESTtful webservice là gì?
REST là một tập hợp các nguyên tắc mà dữ liệu có thể truyền qua phương thức truyền tin (như là HTTP). REST là từ viết tắt của Representational State Transfer.
This basically means that each unique URL is a representation of some object.
Represntational : Tiêu biểu, tượng trưng; Đại diện, thay mặt
State: Trạng thái; tình trạng
Transfer: Sự di chuyển, sự dời chỗ; sự truyền
REST yêu cầu người lập trình sử dụng các phương thức HTTP một cách rõ ràng và theo một cách phù hợp với định nghĩa giao thức. Nguyên tắc thiết kế cơ bản là thiết lập một ánh xạ 1:1 giữa create, read, update và delete (CRUD) và HTTP methods. Tuân theo quy tắc dưới đây:
- Để “create”, hãy sử dụng POST
- Để “read”, hãy sử dụng GET.
- Để “update”, hãy sử dụng PUT.
- Để “delete”, hãy sử dụng DELETE.
Who is using Restful webservice?
Internet giants like Yahoo, Amazon, eBay and more are using Restful webservice
Rest vs SOAP
REST | SOAP |
---|---|
REST stands for REpresentational State Transfer | SOAP stands for Simple Object Access Protocol |
REST is not XML protocol based | SOAP is a XML based messaging protocol |
REST doesn’t have any specification | SOAP has specifications like WSDL etc |
REST doesn’t enforce message format as XML or JSON | SOAP enforces message format as XML |
Light weight – due to the usage of JSON | Heavy weight – due to the usage of XML |
Easy to parse the response | Bit difficult to parse the response |
RESTFul Webservice Request and Response – Drill down
Bước đầu tiên khi thiết kế RESTFul webservice là lựa chọn domain name đúng - gửi đến weatherinfo.org để hỏi thông tin thời tiết của các thành phố.
Hãy xem ví dụ đầu tiên (weatherinfo.org) đã lấy tên thành phố là đầu vào, lấy thông tin thời tiết của thành phố và gửi trả kết quả lại cho trình duyệt. Giả sử các kết quả trả về là XML format, nó có thể là JSON một cách dễ dàng.
Dưới đây là cấu trúc của Request và Response:
HTTP Request
The client request from the browser will look like:
GET http://weatherinfo.org/getweather/mumbai HTTP/1.1
HTTP Response
The server response will look like
HTTP/1.1 200 Ok
Date: Mon, 14 Apr 2014 10:20:58 GMT
Content-Type: text/xml
Content-length: 139
<City name="Mumbai" datetime="2014-04-14 10:20:58 GMT" >
<Condition>Scattered Clouds</Condition>
<Temp>33</Temp>
</City>
Line 1 is the initial line which has the HTTP response code – 200 OK, lines 2 through 4 are the HTTP headers (there can be lots of headers, only 3 are shown here), line 5 is the mandatory blank line separating header and body, and lines 6 through 10 constitute the “HTTP Body (or content)” – this part is the data that the response carries and can be in any format, not necessarily XML.
In fact, the most commonly used format on the web is HTML – one that web servers use to send back data to browsers. Whatever it is, the “Content-type” header usually specifies it. But if you are writing a web service, JSON is a better choice, but that is upto me. If your web service does not return complex or composite data, the format does not need to be JSON – it can be plain , in which case the body will just be a string of characters.
Advantages of using RESTful webservice
RESTful Web services are designed with less dependence on proprietary middleware (for example, an application server) than the SOAP- and WSDL-based kind.
As per the RESTful interface design, XML or JSON over HTTP is a powerful interface that allows internal applications, such as Asynchronous JavaScript + XML/JSON (Ajax)-based custom user interfaces, to easily connect, address, and consume resources.
The great fit between Ajax and REST has increased the amount of attention REST is getting these days.
Exposing a system’s resources through a RESTful API is a flexible way to provide different kinds of applications with data formatted in a standard way. It helps to meet integration requirements that are critical to building systems where data can be easily combined (mashups) and to extend or build on a set of base, RESTful services into something much bigger.