Tìm hiểu về REST , RESTful API , API
1.API
API dịch tiếng anh ra là giao diện lập trình ứng dụng
- Có thể hiểu rằng bây giờ có 2 chương trình chúng ta tạo ra.
- Chúng ta muốn chúng trao đổi dữ liệu và tương tác với nhau (nói nôm na là giao tiếp và tương tác với nhau)
- Như vậy chúng ta phải tạo ra thứ để 2 thằng kia cùng hiểu để bọn nó giao tiếp với nhau (giống như kiểu có 2 ông việt nam và tây , 2 ông này muốn nói chuyện với nhau thì 2 ông phải cùng tìm ra một chuẩn chung để giao tiếp với nhau ) trong trường hợp này nó chính là API.
=> Nếu bạn muốn lấy dữ liệu từ facebook , google ,flick ...bạn phải dùng các API của bọn nó.
- Mỗi bộ API cho các chương trình khác nhau thì khác nhau (chương trình ở đây có thể hiểu như hệ điều hành , trang web .,ứng dụng....)
- Bộ API nó sẽ cũng cấp khả năng truy cập các hàm hay dùng.
Việc bạn cung cấp API giống như việc chúng ta tuyên bố với mọi người rằng chúng ta có thể làm việc abc , xyz này .. người nào đó biết bạn làm được việc abc và người đó nhờ bạn làm , họ sẽ cung cấp cho bạn dữ liệu đầu vào cho bạn rồi bạn sẽ trả lại dữ liệu đã qua xử lý cho bạn (2 người phải thống nhất với nhau dữ liệu đầu vào và đầu ra sẽ như thế nào như vậy nên chúng ta cũng có thể coi API một bộ quy tắc ((: ).
Tiếp ví dụ bên trên về PUBG , khi bạn đã cài được PUBG vào máy rồi thì đến lúc bạn đăng nhập .. Nếu bạn éo muốn tạo tài khoản thủ công mà muốn đăng nhập bằng fb lúc này PUBG nó sẽ gọi đến API của FB và nhờ Fb xác thực hộ danh tính của bạn tiếp theo khi bạn đăng nhập thành công vào fb rồi thì , fb nó sẽ trả về dữ liệu thô (dạng XML) có nội dung kiểu như (Đây là anh Minh Hiệp quê ở abcXYZ) để xác nhận danh tính của bạn với PUBG .
Việc thiết kế API đòi hỏi rất nhiều thời gian và công sức vì bạn cần hiểu được API của tất cả các chương trình có kết nối với nhau.
a) API là gì ?
API dịch tiếng anh ra là giao diện lập trình ứng dụng
- Có thể hiểu rằng bây giờ có 2 chương trình chúng ta tạo ra.
- Chúng ta muốn chúng trao đổi dữ liệu và tương tác với nhau (nói nôm na là giao tiếp và tương tác với nhau)
- Như vậy chúng ta phải tạo ra thứ để 2 thằng kia cùng hiểu để bọn nó giao tiếp với nhau (giống như kiểu có 2 ông việt nam và tây , 2 ông này muốn nói chuyện với nhau thì 2 ông phải cùng tìm ra một chuẩn chung để giao tiếp với nhau ) trong trường hợp này nó chính là API.
=> Nếu bạn muốn lấy dữ liệu từ facebook , google ,flick ...bạn phải dùng các API của bọn nó.
- Mỗi bộ API cho các chương trình khác nhau thì khác nhau (chương trình ở đây có thể hiểu như hệ điều hành , trang web .,ứng dụng....)
- Bộ API nó sẽ cũng cấp khả năng truy cập các hàm hay dùng.
Tóm lại API là bộ quy tắc để các phần mềm , chương trình giao tiếp và tương tác với nhau.
b) Vì sao lại cần dùng API ??
Đơn gian thôi bởi vì khi dùng API bạn có thể tận dụng năng lực xử lý của nhiều phần mềm hay chương trình khác nhau.
Ví dụ : Bạn muốn chơi game PUBG chẳng hạn
Khi bạn tải PUBG về máy rõ ràng PUBG ở đây là một chương trình và nó cần phải được cài đặt vào hệ điều hành => Nếu không có API chẳng có cách nào giúp PUBG cài vào hệ điều hành của bạn cả vì hệ điều hành và PUBG là 2 chương trình hoàn toàn khác nhau , bạn cần phải tạo ra một bộ quy chuẩn để bọn nó tương tác với nhau.
===> API chính là khớp nối giữa các ứng dụng (chương trình , hệ điều hành....) , giúp chúng liên kết với nhau.
Việc bạn cung cấp API giống như việc chúng ta tuyên bố với mọi người rằng chúng ta có thể làm việc abc , xyz này .. người nào đó biết bạn làm được việc abc và người đó nhờ bạn làm , họ sẽ cung cấp cho bạn dữ liệu đầu vào cho bạn rồi bạn sẽ trả lại dữ liệu đã qua xử lý cho bạn (2 người phải thống nhất với nhau dữ liệu đầu vào và đầu ra sẽ như thế nào như vậy nên chúng ta cũng có thể coi API một bộ quy tắc ((: ).
Tiếp ví dụ bên trên về PUBG , khi bạn đã cài được PUBG vào máy rồi thì đến lúc bạn đăng nhập .. Nếu bạn éo muốn tạo tài khoản thủ công mà muốn đăng nhập bằng fb lúc này PUBG nó sẽ gọi đến API của FB và nhờ Fb xác thực hộ danh tính của bạn tiếp theo khi bạn đăng nhập thành công vào fb rồi thì , fb nó sẽ trả về dữ liệu thô (dạng XML) có nội dung kiểu như (Đây là anh Minh Hiệp quê ở abcXYZ) để xác nhận danh tính của bạn với PUBG .
API cực kì quan trọng , nó giúp cho lập trình viên có thể tận dụng tối đa chức năng của các phần mềm khác hay nói cách khác là tận dụng tối đa thành quả của thành viên khác.(((:
Việc thiết kế API đòi hỏi rất nhiều thời gian và công sức vì bạn cần hiểu được API của tất cả các chương trình có kết nối với nhau.
2.REST và RestFul.
a) Định nghĩa
Khi phát triển một webservice chúng ta cần sử dụng các quy ước để các thành phần trong hệ thống giao tiếp với nhau một cách dễ dàng hơn thêm nữa việc sử dụng chung các quy ước như một nguyên tắc thiết kế giúp các lập trình viên khác có thể làm việc với nhau vì tất cả mọi người đều sử dụng chung theo 1 bộ các quy tắc mà ((: ..REST sinh ra để phục vụ cho mục đích này.
- Rest nói một cách khó hiểu thì nó là một hệ thống các rằng buộc ,khi đảm bảo tất cả những rằng buộc này thì hệ thống của bạn là Restful.
b) Resource
Khi phát triển một webservice chúng ta cần sử dụng các quy ước để các thành phần trong hệ thống giao tiếp với nhau một cách dễ dàng hơn thêm nữa việc sử dụng chung các quy ước như một nguyên tắc thiết kế giúp các lập trình viên khác có thể làm việc với nhau vì tất cả mọi người đều sử dụng chung theo 1 bộ các quy tắc mà ((: ..REST sinh ra để phục vụ cho mục đích này.
- Rest nói một cách khó hiểu thì nó là một hệ thống các rằng buộc ,khi đảm bảo tất cả những rằng buộc này thì hệ thống của bạn là Restful.
=> Nói ngắn gọn thì Resource là tất cả nột dung trang web và CSDL của trang web đó
Để quản lý Resourece của 1 trang web thì có rất nhiều cách , vậy thì resource thì liên quan cl gì để rest và restFullAPI ?????
Ví dụ : Để lấy 1 bài viết trong trang web : www.iAmNewBie.com với id = 123xyz
bạn có thể dùng những cách sau đây :
Gửi GET request đến địa chỉ : www.iAmNewBie.com/posts?id=123xyz
Gửi GET request đến địa chỉ : www.iAmNewBie.com/posts/id=123xyz
Gửi GET request đến địa chỉ : www.iAmNewBie.com/action=view_post&id=123xyz
Gửi GET request đến địa chỉ : www.iAmNewBie.com/view_post&id=123xyz
Gửi POST request đến địa chỉ : www.iAmNewBie.com/posts?id=123xyz
Gửi POST request đến địa chỉ : www.iAmNewBie.com/posts/id=123xyz
Như bạn thấy bên trên thì có rất nhiều cách để quản lý các resource (các phương thức quản lý này được gọi là webAPI hay HTTP API ) và Restful chính là webAPI tức là với từng hành động với resource thì bạn chỉ được phép sử dụng các HTTP Method đã quy định.
VD : Hành động lấy bài viết từ webServer lên thì chỉ dùng GET.
Cập nhật dữ liệu thì chỉ dùng PUT ....bla bla
=> Tóm lại RestFul API là cách mà bạn định dạng địa chỉ tài nguyên trên SERVER và sử dụng HTTPMEthod phù hợp để quản lý tài nguyên đó. (Đây là cách hiểu đơn giản nhất , còn một vài lưu ý nữa nhưng bạn chỉ cần tập trung vào 2 ý chính này mà thôi)
Mình vừa nói bên trên Rest là các rằng buộc giờ lại nói Rest là cách quản lý RESOURCE ..????
=> Nói rõ ràng hơn thì Rest là bộ các rằng buộc và một trong các rằng buộc quan trọng nhất là cách mà bạn quản lý RESOURCE và Sủ dụng HTTP Method phù hợp với request được gửi lên.
=> Để ứng dụng RestFul API vào trong thực tế bạn cần phải thiết kế hệ thống tuân thủ 2 nguyên tắc sau :
+ Sử dụng địa chỉ duy nhất cho mỗi tài nguyên trên server.
+ Sử dụng HTTP Method phù hợp để quản lý tài nguyên.
Để quản lý Resourece của 1 trang web thì có rất nhiều cách , vậy thì resource thì liên quan cl gì để rest và restFullAPI ?????
Ví dụ : Để lấy 1 bài viết trong trang web : www.iAmNewBie.com với id = 123xyz
bạn có thể dùng những cách sau đây :
Gửi GET request đến địa chỉ : www.iAmNewBie.com/posts?id=123xyz
Gửi GET request đến địa chỉ : www.iAmNewBie.com/posts/id=123xyz
Gửi GET request đến địa chỉ : www.iAmNewBie.com/action=view_post&id=123xyz
Gửi GET request đến địa chỉ : www.iAmNewBie.com/view_post&id=123xyz
Gửi POST request đến địa chỉ : www.iAmNewBie.com/posts?id=123xyz
Gửi POST request đến địa chỉ : www.iAmNewBie.com/posts/id=123xyz
Như bạn thấy bên trên thì có rất nhiều cách để quản lý các resource (các phương thức quản lý này được gọi là webAPI hay HTTP API ) và Restful chính là webAPI tức là với từng hành động với resource thì bạn chỉ được phép sử dụng các HTTP Method đã quy định.
VD : Hành động lấy bài viết từ webServer lên thì chỉ dùng GET.
Cập nhật dữ liệu thì chỉ dùng PUT ....bla bla
=> Tóm lại RestFul API là cách mà bạn định dạng địa chỉ tài nguyên trên SERVER và sử dụng HTTPMEthod phù hợp để quản lý tài nguyên đó. (Đây là cách hiểu đơn giản nhất , còn một vài lưu ý nữa nhưng bạn chỉ cần tập trung vào 2 ý chính này mà thôi)
Mình vừa nói bên trên Rest là các rằng buộc giờ lại nói Rest là cách quản lý RESOURCE ..????
=> Nói rõ ràng hơn thì Rest là bộ các rằng buộc và một trong các rằng buộc quan trọng nhất là cách mà bạn quản lý RESOURCE và Sủ dụng HTTP Method phù hợp với request được gửi lên.
=> Để ứng dụng RestFul API vào trong thực tế bạn cần phải thiết kế hệ thống tuân thủ 2 nguyên tắc sau :
+ Sử dụng địa chỉ duy nhất cho mỗi tài nguyên trên server.
+ Sử dụng HTTP Method phù hợp để quản lý tài nguyên.





Nhận xét
Đăng nhận xét