Skip to main content

API là gì?

Mục lục:

#1. API là gì?

API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác. Nó là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng. 

Mỗi khi sử dụng một ứng dụng như Facebook, gửi tin nhắn tức thì hoặc kiểm tra thời tiết trên điện thoại, có nghĩa là bạn đang sử dụng API.

Ví dụ về API:

Bạn truy cập vào trang web của hãng hàng không VietJet Air để kiểm tra địa điểm, thời gian bay, giá cả,…

Tuy nhiên, điều gì sẽ xảy ra nếu bạn không sử dụng trang web của hãng hàng không VietJet Air, mà lại sử dụng một dịch vụ du lịch trực tuyến, như Traveloka hoặc vemaybay.

Trong trường hợp này, ứng dụng dịch vụ du lịch Traveloka  tương tác với API của hãng hàng không VietJet Air, yêu cầu lấy thông tin từ cơ sở dữ liệu của hãng như chỗ ngồi, tùy chọn hành lý, giá cả v.v. sau đó hiển thị cho bạn thông tin cập nhật nhất trên ứng dụng của bạn.

#2. API ứng dụng vào đâu?

Web API

Web API là hệ thống API được sử dụng trong các hệ thống website.

Hầu hết các website đều ứng dụng đến Web API cho phép bạn kết nối, lấy dữ liệu hoặc cập nhật cơ sở dữ liệu.

Ví dụ:

Bạn thiết kế chức nằng login thông Google, Facebook, Twitter, Github…

Điều này có nghĩa là bạn đang gọi đến API được cung cấp của Google, Facebook, ... để thực hiện login bằng tài khoản Google, Facebook 

API trên hệ điều hành

API trên hệ điều hành như trong Windows hay Linux có rất nhiều API, họ cung cấp các tài liệu API là đặc tả các hàm, phương thức cũng như các giao thức kết nối.

Nó giúp lập trình viên có thể tạo ra các phần mềm ứng dụng có thể tương tác trực tiếp với hệ điều hành

API của thư viện phần mềm hay framework

API của thư viện phần mềm hay framework là các API mô tả và quy định các hành động mong muốn mà các thư viện cung cấp.

Một API có thể có nhiều cách triển khai khác nhau và nó cũng giúp cho một chương trình viết bằng ngôn ngữ này có thể sử dụng thư viện được viết bằng ngôn ngữ khác.

Ví dụ :

bạn có thể dùng PHP để yêu cầu một thư viện tạo file PDF được viết bằng C++.

#3. API Key là gì?

API Key là loại code (string) được truyền tải bởi các chương trình máy tính gọi là API để xác định chương trình gọi, nhà phát triển hoặc người dùng nó tới trang web.

Các API key được sử dụng với mục đích nhằm giới hạn, kiểm soát sử dụng API.

Chẳng hạn như ngăn chặn sự việc lạm dụng API ( xác định theo điều khoản sử dụng API).

API Key thường hoạt động như một mã định danh duy nhất và mã thông báo bí mật để xác thực và thường sẽ có một bộ quyền truy cập trên API được liên kết với nó.

Các API Key có thể dựa trên hệ thống định danh duy nhất toàn cầu (UUID) để đảm bảo chúng sẽ là duy nhất cho mỗi người dùng.

#4. API Hiện đại

Gần đây, API hiện đại đã đưa ra một số đặc điểm khiến chúng có giá trị và hữu ích đặc biệt:

  • Các API hiện đại tuân thủ các tiêu chuẩn (thường là HTTP và REST), thân thiện với nhà phát triển, dễ dàng truy cập và dễ hiểu hơn.
  • API hiện đại chuẩn hóa nhiều hơn, nên quy mô lớn hơn, tính bảo mật mạnh hơn, cũng như được theo dõi và quản lý hiệu quả, dễ dàng hơn.
  • API hiện đại được xử lý giống như sản phẩm ứng dụng hơn và chúng còn kèm theo các document và version cho từng đối tượng cụ thể. (ví dụ: nhà phát triển thiết bị di động hay phát triển website).
  • API hiện đại có Quy trình phát triển phần mềm (SDLC) riêng về thiết kế, thử nghiệm, xây dựng, quản lý và tạo phiên bản. 

Rest API là gì

#5. Ưu và Nhược điểm của API

Việc xác định ưu và nhược điểm khi sử dụng API sẽ giúp ta có thể ứng dụng nó một cách linh hoạt và hữu dụng hơn.

Ưu Điểm

  • Kết nối ứng dụng với nhau ở mọi lúc mọi nơi nhờ vào Internet.
  • Giao tiếp hai chiều phải được xác nhận trong các giao dịch tạo nên sự tin cậy cao.
  • Cung cấp giải pháp phát triển khi các nhà phát triển tìm thấy cách sử dụng mới để trao đổi API cho nhau.
  • Giúp gia tăng trải nghiệm của người dùng
  • Hỗ trợ chức năng RESTful một cách đầy đủ.
  • Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test.

Nhược Điểm

  • Tốn nhiều chi phí phát triển, vận hành, chỉnh sửa.
  • Đòi hỏi kiến thức chuyên sâu.
  • Có thể gặp vấn đề bảo mật khi bị tấn công hệ thống.