DevOps

API là gì? Các loại kiến trúc API phổ biến

API thường xuất hiện trong lĩnh vực khoa học máy tính. Bạn đã hiểu đúng định nghĩa API, phân loại API và các hoạt động ra sao chưa? Nếu chưa thì bạn có thể thông qua bài viết dưới đây để khám xem API là gì. Đầu tiên, chúng ta cùng tìm hiểu về khái niệm API là gì trước nhé!

API là gì?

API là gì?

API viết tắt của Application Programming Interface là một tập hợp các câu lệnh (commands), functions, các giao thức (protocols), objects,… giúp hai phần mềm (ứng dụng) có thể tương tác và trao đổi dữ liệu qua lại được với nhau. Hiện API vẫn bị hiểu sai là URLs giúp website frond-end gọi sang back-end để lấy dữ liệu.

Bạn hãy tưởng tượng chúng ta đang lái xe, API sẽ là các thành phần điều khiển trên xe của bạn chẳng hạn như vô lăng, bảng điều khiển, đèn xe, gương,… Chúng ta chỉ cần biết điều khiển nó và lái xe giữ an toàn là được chứ không cần bận tâm chúng được cấu tạo và hoạt động như thế nào.

Chúng ta cùng liên tưởng đến một khái niệm khác có phần đuôi Interface giống với API đó chính là UI hay còn biết đến là User Interface. Thông qua 2 đặc điểm dưới đây bạn sẽ hiểu rõ hơn về định nghĩa API là gì!

  • UI giúp user người dùng cuối tương tác với ứng dụng (application) trong khi đó, API sẽ giúp hai application tương tác với nhau, chúng ta sẽ quy ước chúng thành application A và Application B.
  • UI sẽ giúp user tương tác application mà lúc này user không cần quan tâm application được xây dựng hay thực hiện như thế nào. Chẳng hạn như các bạn đóng vai trò là một end user, các bạn truy cập vào Google, nhập một đoạn text và nhấp enter thì lúc này nó sẽ hiển thị ra những kết quả tìm kiếm. Bạn không cần bận tâm về lý do tại sao nó lại hiển thị ra được kết quả nhanh như vậy. Tương tự vậy, API application A tương tác với application B, lúc này application B không cần quan tâm application A được thực hiện như thế nào. Application B chỉ cần thông qua những chỉ dẫn từ application A để trao đổi dữ liệu qua lại mà thôi.

Bạn cũng có thể xem qua hình minh hoạ dưới đây để hiểu rõ hơn về cách hoạt động của API.

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

Ví dụ về API

Có hai ứng dụng JavaScript tương tác với nhau:

  • Bạn A sẽ xây dựng hàm tính tổng
  • Bạn B sẽ sử dụng hàm tính tổng của bạn A trong cùng một JavaScript. Bạn A cung cấp API tính tổng cho bạn B.

Trong quá trình sử dụng thì B không cần quan tâm hàm tính tổng của A được viết như thế nào, B chỉ cần quan tâm nhiệm vụ chính của mình là gọi hàm, lấy hàm và truyền hai thông số.

Kiến trúc API

Các loại kiến trúc API

Kiến trúc API bao gồm quy tắc hướng dẫn thông tin giúp API có thể chia sẻ với khách hàng và cách API chia sẻ dữ liệu. REST, SOAP và RPC là những kiến ​​trúc API phổ biến nhất được sử dụng ngày nay.

Xem thêm: OpenTelemetry: Công cụ giám sát và tối ưu hóa ứng dụng

REST

Kiến trúc API – Rest

Ngày nay, phần lớn các web API được xây dựng dựa trên REST. REST viết tắt của Representational State Transfer. Nó là một dạng chuyển đổi cấu trúc dữ liệu, sử dụng HTTP đơn giản để tạo giao tiếp giữa các máy. REST API hoặc RESTful API là API tuân theo các nguyên tắc REST để truyền dữ liệu từ server sang requesting client.

Các ràng buộc trong REST:

  • Client-Server Separation

Tất cả các tương tác client-server phải ở dạng request từ client, theo sau là response từ server. Servers không thể request và clients không thể respond.

  • Uniform Interface (Chuẩn hoá các Interface)

Đây được xem là ràng buộc quan trọng nhất của hệ thống REST. Tất cả các requests và responses phải sử dụng HTTP làm giao thức liên lạc và được định dạng theo một cách cụ thể để đảm bảo khả năng tương thích giữa client và server. Responses từ server được định dạng bằng JavaScript Object Notation (JSON).

  • Stateless (phi trạng thái)

Server và client sẽ không lưu trạng thái của nhau. Server không lưu trữ dữ liệu từ client requests và chúng sẽ không ghi nhớ gì từ các tương tác trong quá khứ. Điều này giúp hệ thống dễ phát triển và mở rộng hơn.

  • Layered system (hệ thống phân lớp)

Requests và responses phải luôn được định dạng theo cùng một cách ngay cả khi chúng được chuyển qua các servers trung gian giữa client và API.

  • Cacheable

Responses của server phải cho biết liệu tài nguyên cung cấp có được lưu vào bộ nhớ cache bởi client hay không và được lưu trong bao lâu.

Thông qua các ràng buộc trên, REST API có thể được sử dụng để truyền dữ liệu nhanh chóng, dễ dàng, an toàn và giúp chúng trở thành lựa chọn phổ biến của các developer.

SOAP

Kiến trúc API – SOAP

SOAP (Simple Object Access Protocol) là giao thức truy cập đối tượng đơn giản được sử dụng để xây dựng API. SOAP do World Wide Web Consortium (W3C) định nghĩa và sử dụng XML để mã hóa thông tin.

SOAP được sử dụng để gửi thông điệp giữa các ứng dụng với nhau thông qua HTTP. SOAP thường được triển khai để truyền data nội bộ có yêu cầu bảo mật cao. Một lợi thế nữa của SOAP là nó hoạt động trên mọi giao thức truyền thông (communication protocol) không chỉ trên HTTP như trường hợp của REST.

Xem thêm: WebSocket là gì? Lý do sử dụng WebSocket

RPC

Kiến trúc API – RPC

RPC (Remote Procedural Call) được xem là giao thức đơn giản nhất so với REST, SOAP. Không giống như REST và SOAP tạo điều kiện cho việc truyền dữ liệu, RPC APIs sẽ invoke processes. Nói cách khác, chúng sẽ thực thi các scripts trên server.

RPC APIs có thể sử dụng JSON (giao thức JSON-RPC) hoặc XML (giao thức XML-RPC) trong các lệnh gọi của chúng. XML sẽ an toàn và phù hợp hơn so với JSON, nhưng hai giao thức này tương tự nhau.

RPC APIs bị hạn chế về khả năng bảo mật, vì vậy bạn sẽ không thấy chúng được ứng dụng thường xuyên như REST API hoặc SOAP trên web. Tuy nhiên, nó thường được sử dụng trong các hệ thống nội bộ để thực hiện các quy trình cơ bản đặc biệt là khi có nhiều yêu cầu cùng một lúc.

Xem thêm: Cơ Sở Dữ Liệu là gì? Các mô hình Database bạn cần biết

Lời kết

Hy vọng bài viết này giúp bạn hiểu rõ được định nghĩa API là gì thông qua những ví dụ cũng như bạn đã biết được những kiến trúc phổ biến thường được dùng trong API. Hãy nhớ rằng chọn loại API phù hợp là điều cần thiết cho sự thành công của doanh nghiệp bạn.

Nếu bạn có định hướng trở thành DevOps chuyên nghiệp thì bạn có thể tham khảo bài viết Lộ trình học DevOps trong 12 ngày.

Tham khảo thêm:

Mọi thắc mắc xin hãy liên hệ
Email: [email protected]

(Nguồn: 200lab.io)

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button