Mối quan hệ giữa SDK và API là gì?
Trong phát triển phần mềm, khi quy mô hệ thống ngày càng lớn, việc phân chia hệ thống phức tạp thành các thành phần nhỏ hơn trở nên vô cùng quan trọng, trong đó thiết kế giao diện lập trình (API) đóng vai trò then chốt. Nhiệm vụ hàng đầu của thiết kế giao diện là phân bổ trách nhiệm hợp lý cho hệ thống phần mềm. Thiết kế giao diện tốt có thể giảm sự phụ thuộc giữa các phần của hệ thống, nâng cao tính gắn kết của mô-đun và đồng thời giảm mức độ liên kết giữa các mô-đun, từ đó nâng cao khả năng bảo trì và mở rộng của hệ thống. API, với tư cách là một dạng giao diện, đóng một vai trò quan trọng trong tương tác giữa các chương trình, trong khi SDK và API có mối liên hệ chặt chẽ.
01 API
(1) Khái niệm về API
API, viết tắt của "Giao diện lập trình ứng dụng", là một tập hợp các hàm được xác định trước, được thiết kế để đóng vai trò là "giao diện" kết nối hai thực thể khác nhau. Nó cung cấp một phương tiện để các ứng dụng và nhà phát triển có thể truy cập các quy trình của một phần mềm hoặc phần cứng, mà không cần phải tiếp xúc với mã nguồn hoặc hiểu chi tiết về cơ chế hoạt động bên trong của nó.
Trên thực tế, API là các hàm do người khác viết trước, có khả năng thực hiện các chức năng cụ thể. Bạn chỉ cần gọi các phương thức của giao diện được cung cấp và truyền các tham số được chỉ định, hàm này sẽ giúp bạn thực hiện các chức năng đó.

Từ khái niệm "giao diện", trong lĩnh vực máy tính, nó đề cập đến nơi tương tác giữa hai thực thể khác nhau, có thể là hai hệ thống hoàn toàn khác nhau hoặc hai đoạn chương trình. Do đó, chữ "I" trong giao diện có thể được hiểu như sau. Dựa trên điều này, nơi tương tác giữa người và chương trình được gọi là UI (Giao diện người dùng), bao gồm tất cả các hình thức đầu vào của người dùng, chẳng hạn như chuột, bàn phím, màn hình cảm ứng và đầu vào giọng nói, v.v. Còn tương tác giữa chương trình và chương trình thì được gọi là API, tất cả các tương tác không phải người-người đều thông qua API, về bản chất tương tác là truyền dữ liệu và kích hoạt chức năng.
(2) Phân loại API
API được chia thành API cấp hệ thống (như Windows, Linux, Unix, v.v.) và API tùy chỉnh không thuộc cấp hệ điều hành. Là một mô hình đóng gói mã hiệu quả, mô hình phát triển API của Microsoft Windows đã được nhiều công ty phát triển ứng dụng thương mại học hỏi và phát triển các hàm API của một số hệ thống ứng dụng thương mại để phát hành, tạo điều kiện cho các bên thứ ba mở rộng chức năng. Ví dụ: API được phát triển bởi Google, Apple và Nokia, v.v.
API cũng được chia thành API mở và API riêng tư. Như tên gọi của nó, API mở là giao diện được công khai cho tất cả mọi người, cho phép bất kỳ ai gọi và lấy dữ liệu đằng sau nó. Đôi khi, các công ty sẽ coi API là hệ thống mở công cộng của họ, nghĩa là công ty thiết lập các tiêu chuẩn giao diện hệ thống của riêng mình và tất cả các thành viên của công ty có thể gọi mã nguồn thông qua tiêu chuẩn giao diện này khi cần thực hiện tích hợp hệ thống, tùy chỉnh và ứng dụng chương trình. Tiêu chuẩn giao diện này được gọi là API mở. API riêng tư là giao diện không được mở ra bên ngoài.
02 SDK
(1) Khái niệm về SDK
SDK, viết tắt của "Bộ công cụ phát triển phần mềm", thường là một tập hợp các công cụ phát triển được sử dụng bởi các kỹ sư phần mềm để xây dựng phần mềm ứng dụng cho một gói phần mềm cụ thể, khung phần mềm, nền tảng phần cứng, hệ điều hành, v.v. Nói một cách đơn giản, SDK là một bộ công cụ do nhà cung cấp dịch vụ bên thứ ba cung cấp để thực hiện một chức năng nhất định của sản phẩm phần mềm.
Thông thường, SDK được cung cấp bởi các công ty chuyên nghiệp, cung cấp một tập hợp các dịch vụ chuyên nghiệp, chẳng hạn như cung cấp các công cụ phát triển Android hoặc các dịch vụ dựa trên phát triển phần cứng, v.v. Cũng có SDK dành cho một chức năng phần mềm cụ thể, chẳng hạn như công nghệ đẩy, công nghệ nhận dạng hình ảnh, công nghệ thanh toán di động, công nghệ phân tích nhận dạng giọng nói, v.v. Trong xu hướng mở của Internet, một số SDK chức năng đã được vận hành như một sản phẩm.
Nhà phát triển không cần phải phát triển từng chức năng của sản phẩm nữa, chỉ cần chọn dịch vụ SDK ổn định phù hợp và có thể tích hợp một chức năng nhất định vào sản phẩm trong một thời gian ngắn.
(2) Sự khác biệt giữa SDK và API
SDK tương đương với môi trường tích hợp phát triển, trong khi API là giao diện dữ liệu. Gọi API dữ liệu trong môi trường SDK.
Trên thực tế, SDK chứa định nghĩa của API, API định nghĩa một khả năng, một tiêu chuẩn giao diện, và SDK có thể chứa khả năng và tiêu chuẩn này. Nhưng SDK không chỉ chứa API và việc triển khai của nó, mà còn là một bộ công cụ phần mềm, chứa nhiều chức năng hỗ trợ khác.
SDK chứa tài liệu cần thiết để sử dụng API, vì vậy mọi người thường gọi việc viết ứng dụng Windows chỉ bằng cách sử dụng API là "lập trình SDK".





