API là một khái niệm cực kì quan trọng với developer nhất là các vị trí như Backend/Software Engineer hoặc thậm chí cả DevOps, mình chắc chắn rằng bạn sẽ phải tiếp xúc với nó thường xuyên, vậy nên nếu bạn chưa biết nó là gì thì hãy cùng 200Lab tìm hiểu trong bài viết sau đây nhé.
1. API là gì?
API - Application Programming Interface hay Giao diện lập trình ứng dụng, là một bộ quy tắc xác định cách một chương trình phần mềm nào đó có thể truy cập dữ liệu hoặc chức năng do chương trình phần mềm khác cung cấp.
API là một phần thiết yếu, không thể thiếu đối với việc lập trình ứng dụng, chúng cho phép các hệ thống và ứng dụng giao tiếp với nhau, chia sẻ thông tin một cách linh hoạt và hiệu quả.API được sử dụng trong nhiều bối cảnh khác nhau, ví dụ như phát triển web, ứng dụng di động và ứng dụng Internet of Things (IoT).
Nếu đọc đến đây mà bạn vẫn chưa hình dung được API là gì thì hãy cùng mình đến với phần phía sau, mô tả chi tiết cách hoạt động của một API.
2. API hoạt động như thế nào?
Hãy tưởng tượng bạn đang xây dựng một ứng dụng hiển thị thời tiết ở vị trí bạn đang đứng và cả những nơi khác trên thế giới nữa. Input sẽ là tọa độ (kinh độ và vĩ độ) hiện tại của bạn, hoặc một nơi nào đó do bạn chỉ định.
Thay vì phải tự làm hết trên ứng dụng của mình, bạn có thể sử dụng lại API có sẵn của cục khí tượng hoặc nhờ team backend viết giúp bạn API xử lý với input là kinh độ, vĩ độ và trả ra nhiệt độ, việc của bạn chỉ cần hiển thị mà thôi.
Bạn sẽ tự hỏi vậy thì mình tự xử lý trên ứng dụng với gọi API của đồng đội có gì khác biệt không, hay công việc đáng lẽ bạn nên làm thì giao cho đội của mình làm? Thật ra nó ẩn chứa lợi ích rất lớn, bạn sẽ không cần phải cập nhật ứng dụng khi logic tính toán nhiệt độ bị thay đổi, ví dụ như cộng thêm 5 độ so với số thực tế. Lúc này thứ cần phải thay đổi là API Server chứ không phải là ứng dụng trên App Store.
![](https://statics.cdn.200lab.io/2024/06/api-la-gi-api-request-response-diagram.jpg)
Và đây là các bước hoạt động của API:
- Client (Weather App) gửi yêu cầu đến API Server, thường qua internet hoặc mạng nội bộ. Request được gửi đi bằng một giao thức cụ thể ( Http, Rest) và chứa các thông tin về hoạt động mà Client muốn thực hiện, ví dụ: truy xuất dữ liệu hoặc cập nhật tài nguyên.
- API Server sau khi nhận được yêu cầu sẽ xử lý nó. Trong lúc đó API Server có thể sẽ phải làm thêm một số tác vụ như: xác thực request (tham số đã đủ hay chưa), xác thực Client (client này có quyền gọi gửi request hay bị chặn), xác thực token/api key (authentication), ...
- API Server gửi phản hồi lại cho Client hay còn được gọi là Response, phản hồi này bao gồm: dữ liệu, thông báo lỗi hoặc mã trạng thái cho biết kết quả thực thi (500, 200, ...).
- Client nhận được phản hồi và xử lý nó, ví dụ: hiển thị ra trên màn hình cho người dùng xem.
3. Hướng dẫn sử dụng API
Đây các bước mà bạn cần làm để sử dụng API hiệu quả:
3.1 Đọc tài liệu đặc tả API
Sau khi đã có được API, bước tiếp theo là đọc tài liệu về API. Tài liệu phải cung cấp thông tin về khả năng của API, cấu trúc của các request và response cũng như yêu cầu xác thực. Mình thấy các tài liệu này thường được chia sẻ bằng Swagger.
![](https://statics.cdn.200lab.io/2024/06/api-la-gi-best-practices-blog-image.png)
3.2 Lấy API Key
Nhiều API yêu cầu bạn phải lấy API Key trước khi có thể bắt đầu sử dụng. API Key là mã định danh duy nhất dùng để xác thực các request API của bạn. Bạn được cấp một API Key sau khi đăng ký API hoặc sau khi bạn đồng ý với các điều khoản sử dụng của API, bên dưới là một API Key của Twitter.
![](https://statics.cdn.200lab.io/2024/06/api-la-gi-api-key.jpg)
3.3 Gọi API
Sau khi có API Key và đọc tài liệu API, bạn có thể bắt đầu thực hiện các yêu cầu API.
![](https://statics.cdn.200lab.io/2024/06/api-la-gi-api-request.png)
3.4 Xử lý Response
Khi bạn gửi request, API Server sẽ gửi phản hồi lại cho bạn. Phản hồi có thể bao gồm dữ liệu, thông báo lỗi hoặc mã trạng thái cho biết kết quả thực thi. Bạn cần phải xử lý phản hồi API và tính toán hết các khả năng khi có lỗi xảy ra.
4. Tại sao API lại quan trọng?
API ngày càng trở nên quan trọng trong phát triển phần mềm hiện đại. Chúng cho phép các developer tập trung vào việc xây dựng các tính năng mới thay vì làm đi làm lại những thứ đã có sẵn. Ví dụ: khi phát triển ứng dụng di động bạn có thể sử dụng API để truy cập dịch vụ thời tiết thay vì xây dựng lại chức năng này từ đầu. Dưới đây là một số lý do khác khiến API trở nên thiết yếu ngày nay.
4.1 Khả năng tương tác
API hỗ trợ khả năng tương tác giữa các hệ thống phần mềm đa dạng. Chúng cho phép các ứng dụng và dịch vụ được phát triển bởi các tổ chức hoặc nhóm khác nhau làm việc cùng nhau, chia sẻ dữ liệu và cung cấp các giải pháp tích hợp.
Giải thích dễ hiểu là khi bạn phát triển một ứng dụng, ứng dụng này có nhiều dịch vụ (service) khác nhau: đặt hàng, thanh toán, giao hàng, ... mỗi service do một team chịu trách nhiệm. Bạn hoàn toàn không cần quan tâm đến team khác đang dùng ngôn ngữ gì và chỉ nói chuyện với service của họ thông qua API (http, rest), điều này đem lại cho bạn khả năng giao tiếp "xuyên ngôn ngữ".
4.2 Chia nhỏ ứng dụng thành các Module
API cho phép bạn có chia nhỏ các hệ thống phức tạp thành các thành phần nhỏ hơn (microservice), dễ quản lý, giúp phát triển, kiểm tra và bảo trì phần mềm dễ dàng hơn vì các nhà phát triển có thể tập trung vào việc xây dựng và cập nhật các chức năng cụ thể.
Rõ ràng việc chỉnh sửa một module hay một service sẽ dễ dàng hơn rất nhiều so với việc để chung tất cả code của bạn vào một repository lớn, điều này sẽ rất rủi ro cho các hệ thống lớn và phức tạp, vì API cho phép các service tương tác với nhau nên bạn cũng có thể dễ dàng chia nhỏ ứng dụng ra thành các module nhỏ hơn.
4.3 Tích hợp đa nền tảng
API cho phép tích hợp đa nền tảng, cho phép ứng dụng hoạt động trên nhiều thiết bị và môi trường khác nhau. Ví dụ: ứng dụng xem phim trực tuyến (Netflix) có rất nhiều Client khác nhau (Android, iOS, MacOS, Web, ...), tuy nhiên tất cả các Client này đều gửi yêu cầu về một API Server, chúng ta không cần phải phát triển API cho từng nền tảng Client riêng biệt.
4.4 Chuẩn hóa cách thức Truy cập và chia sẻ dữ liệu
API xác định cách thức dữ liệu được trao đổi giữa các ứng dụng. Dữ liệu ở request và response sẽ được định dạng bằng một ngôn ngữ cụ thể, chẳng hạn như JSON hoặc XML . Cấu trúc dữ liệu chuẩn hóa này giúp cả ứng dụng có tính đồng nhất và quy chuẩn.
5. Kết luận
Qua bài viết vừa rồi mình hy vọng có thể cung cấp cho bạn cái nhìn tổng quan về API và vai trò của nó đối với quá trình phát triển phần mềm, mong rằng sẽ mang lại thông tin hữu ích cho các bạn.
Các bài viết liên quan:
![Hướng nội làm Data](https://statics.cdn.200lab.io/2024/07/449612921_122109685034370782_8648180932270013091_n.jpg)