RESTFUL API
1. RESTFul API là gì?
RESTFUL API ( Representational state transfer Application Programming Interface) là một tiêu chuẩn trong thiết kế web để tạo ra và quản lý các resources. Nó chú trọng đến các tài nguyên hệ thống như (tệp văn bản, âm thanh, video, json ...)
Có thể hiểu là RESTFUL API là đề cập đến tất cả các loại tài nguyên hệ thống
.

2. Các giao thức API
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng.
GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
POST (CREATE): Tạo mới một Resource.
PUT (UPDATE): Cập nhật thông tin cho Resource.
DELETE (DELETE): Xoá một Resource.
Đây được gọi là CRUD của API.
3. HTTP Status Code
Là mã trạng thái HTTP Server phải lại khi nhận http request
Yếu tố Status-Code là một số nguyên 3 ký tự, trong đó ký tự đầu tiên của mã hóa trạng thái định nghĩa hạng (loại) phản hồi và hai ký tự cuối không có bất cứ vai trò phân loại nào. Có 5 giá trị của ký tự đầu tiên như sau:
Mã nguồn
ý nghĩa
1xx(thông tin)
Nó nghĩa là yêu cầu đã được nhận và tiến trình đang tiếp tục.
100 (continue)
Máy chủ trả về mã này để chỉ ra rằng nó đã nhận được một phần đầu tiên của một yêu cầu và được chờ đợi cho phần còn lại.
101(Switching protocols)
Bên yêu cầu đã yêu cầu các máy chủ để chuyển đổi và máy chủ được thừa nhận rằng nó sẽ làm như vậy
2xx(thành công)
Nó nghĩa là hoạt động đã được nhận, được hiểu, và được chấp nhận một cách thành công.
200(successful)
Các máy chủ xử lý yêu cầu thành công
201(created)
Yêu cầu đã thành công và các máy chủ tạo ra một nguồn tài nguyên mới.
202(Accepted)
Máy chủ đã chấp nhận yêu cầu, nhưng vẫn chưa xử lý nó
203(Non-authoritative information)
Máy chủ xử lý yêu cầu thành công, nhưng đang quay trở lại các thông tin mà có thể là từ một nguồn khác.
204(No content)
Các máy chủ xử lý yêu cầu thành công, nhưng không trả lại bất kỳ nội dung nào
205(Reset content)
Các máy chủ proccessed yêu cầu thành công, nhưng không trả lại bất kỳ nội dung. Không giống như một phản ứng 204, phản ứng này đòi hỏi người yêu cầu thiết lập lại xem tài liệu
206(partial content)
Các máy chủ xử lý thành công một phần của một yêu cầu
3xx(Sự điều hướng lại)
Nó nghĩa là hoạt động phải được thực hiện để hoàn thành yêu cầu.
301(Moved permanently)
Các trang web yêu cầu đã bị di chuyển vĩnh viễn tới URL mới
302(Moved temporarily)
Trang được yêu cầu đã di chuyển tạm thời tới một URL mới
304(Not modified)
Các trang yêu cầu đã không được sửa đổi kể từ khi yêu cầu cuối cùng. Khi máy chủ trả về phản hồi này, nó không trả lại các nội dung của trang.
4xx(Lỗi Client)
Nó nghĩa là yêu cầu chứa cú pháp không chính xác hoặc không được thực hiện
400(Bad request)
Các máy chủ không hiểu được yêu cầu.
401(Not authorized)
Đề nghị yêu cầu xác thực. Máy chủ có thể trả về phản hồi này yêu cầu xác thực đăng nhập tài khoản và mật khẩu (thông thường máy chủ trả về phản hồi này nếu client gửi request một trang đăng nhập)
403(Forbidden)
Máy chủ từ chối yêu cầu.(thông thường nếu đăng nhập không thành công máy chủ sẽ trả về mã lỗi này)
404(Not Found)
Máy chủ không thể tìm thấy trang yêu cầu. Ví dụ, máy chủ thường trả về mã này nếu có 1 yêu cầu tới một trang không tồn tại trên máy chủ.
405(Method not allowed)
Phương thức được xác định trong yêu cầu là không được cho phép.
406(Not acceptable)
Server chỉ có thể tạo một phản hồi mà không được chấp nhận bởi Client.
5xx(Lỗi server)
Nó nghĩa là Server thất bại với việc thực hiện một yêu cầu nhìn như có vẻ khả thi.
500(Internal server errors)
Các máy chủ gặp lỗi và không thể thực hiện yêu cầu.
4. HTTP Response
HTTP Response Header Fields
Các trường Header phản hồi cho phép Server truyền thông tin thêm về phản hồi mà không thể được đặt trong dòng Status-Line. Những trường Header này cung cấp thông tin về Server và về truy cập từ xa tới nguồn được xác định bởi Request-URI:
response-header = Accept-Ranges;
| Age ;
| ETag ;
| Location;
| Proxy-Authenticate;
| Retry-After;
| Server;
| Vary ;
| WWW-Authenticate;
Một ví dụ về một HTTP Response:
HTTP/1.1 200 OK
Date: Mon, ngày 23 tháng 5 năm 2005 22:38:34 GMT
Content-Type: text/html; charset=UTF-8
Content-Encoding: UTF-8
Content-Length: 138
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
ETag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Connection: close
<html>
<head>
<title>An Example Page</title>
</head>
<body>
Hello World, this is a very simple HTML document.
</body>
</html>
Tham khảo
Last updated
Was this helpful?