(+84) 236.3827111 ex. 402

RESTful API


Khi các bạn đọc các yêu cầu tuyển dụng về khối .NET, các bạn sẽ thấy có yêu cầu về RESTful API. Vì vậy, ngay từ năm một, các bạn sinh viên KCNTT Đại học Duy Tân phải nhanh chóng tìm hiểu mọi công nghệ có trong yêu cầu tuyển dụng để lên kế hoạch "luyện công".

Và hôm nay, mình tìm hiểu và tham khảo nhiều nguồn (đặc biệt là trên RESTful API là gì ?

Dù hiện tại cũng có rất nhiều bài viết về RESTful API nhưng mình vẫn muốn viết về vấn đề này để đóng góp một phần ý kiến trong việc thiết kế RESTful API. Bài viết này cũng là kiến thức mình tự tìm hiểu, tham khảo qua nhiều nguồn, nếu mình có sai sót gì, mong các bạn hãy góp ý thêm giúp mình. Thanks you 😀

Có thể nói nguyên lí REST và cấu trúc dữ liệu RESTful được biết đến rộng rãi trong giới lập trình web nói chung và lập trình ứng dụng nói riêng.

Để hiểu rõ hơn về RESTful API ta sẽ đi lần lượt giải thích các khái niệm nhở API, REST hay RESTful.

Các lập trình viên web thường nhắc đến nguyên lý REST và cấu trúc dữ liệu RESTFUL bởi nó là một phần rất quan trọng trong sự phát triển của các ứng dụng web. Vậy RESTFUL API là gì ? Để hiểu rõ hơn chúng ta cùng nhau tìm hiểu nhé.

API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác. API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML.

RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.

RESTful API hoạt động như thế nào?

  • 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.

Hiện tại đa số lập trình viên viết RESTful API giờ đây đều chọn JSON là format chính thức nhưng cũng có nhiều người chọn XML làm format, nói chung dùng thế nào cũng được miễn tiện và nhanh.

RESTful API không sử dụng session và cookie, nó sử dụng một access_token với mỗi request. Bạn có thể tìm hiểu JWT (JsonWebToken) để biết rõ hơn. Mình sẽ làm một bài về JWT trong phần sau nữa 😃) Dữ liệu trả về thường có cấu trúc như sau:

Ở trên là ví dụ về cấu trúc trả về của api get một list users trong hệ thống.

Khi chúng ta request một API nào đó thường thì sẽ có vài status code để nhận biết sau:

  • Trong Ruby on Rails có thể sử dụng symbol status code hoặc 3 chữ số integer

    Khi thiết api cho app ios hay client side, chúng ta nên đặt version cho các api. Ví dụ như endpoint sau: api/v1/users

    Ưu điểm của RESTFUL API là gì ?

    • Giúp cho ứng dụng rõ ràng hơn
    • REST URL đại diện cho resource chứ không phải hành động
    • Dữ liệu được trả về với nhiều định dạng khác nhau như: xml, html, json….
    • Code đơn giản và ngắn gọn
    • REST chú trọng vào tài nguyên của hệ thống

    Những trang web ngày nay thường sử dụng REST API để cho phép kết nối đến dữ liệu của họ. Trong đó, facebook cũng cung cấp các REST API để giúp các ứng dụng bên ngoài kết nối đến dữ liệu của họ.