API nói chung và Web API nói riêng đang được ứng dụng ngày càng nhiều. Kiến trúc ứng dụng hiện đại ngày nay ngày càng phân tán, không phụ thuộc ngôn ngữ đã thúc đẩy việc ứng dụng API. Vậy API là gì? Nguồn gốc và ưu điểm của nó là như thế nào?
API là gì? API hoạt động như thế nào?
API là gì?
API tên tiếng anh application programming interface là một phương thức, giao thức kết nối với các thư viện và ứng dụng khác giúp các hệ thống hay ứng dụng có thể kết nối và tương tác với nhau cho dù chúng không liên quan đến nhau.
API còn là một trung gian phần mềm cho phép hai ứng dụng giao tiếp với nhau, có thể sử dụng cho web-based system, operating system, database system, computer hardware, or software library.
API hoạt động như thế nào?
Kiến trúc API hoạt động nhờ Internet vì vậy thường được giải thích dưới dạng client và server. Ứng dụng gửi yêu cầu được gọi là máy khách, còn ứng dụng gửi phản hồi được gọi là máy chủ.
– Để xây dựng API đầu tiên ta cần xây dựng URL API để các bên có thể gửi yêu cầu dữ liệu đến Server cung cấp nội dung, dịch vụ thông qua giao thức mạng như HTTP hoặc HTTPS.
– Tại máy chủ cung cấp API, các ứng dụng nguồn sẽ thực hiện kiểm tra xác thực nếu có và tìm đến tài nguyên thích hợp để tạo nội dung trả về kết quả.
– Máy chủ sẽ trả kết quả theo định dạng JSON hoặc XML thông qua giao thức HTTP/HTTPS.
– Máy khách sẽ nhận dữ liệu JSON hoặc XML và sử lý dữ liệu này.
Các phương thức API dùng mô tả hành động:
- GET: Sử dụng để lấy thông tin từ server theo URI đã cung cấp.
- HEAD: Giống với GET nhưng response trả về không có body, chỉ có header.
- POST: Gửi thông tin tới sever thông qua các parameters HTTP.
- PUT: Ghi đè tất cả thông tin của đối tượng với những gì được gửi lên.
- PATCH: Ghi đè các thông tin được thay đổi của đối tượng.
- DELETE: Xóa resource trên server.
- CONNECT: Thiết lập một kết nối tới server theo URI.
- OPTIONS: Mô tả các tùy chọn giao tiếp cho resource.
- TRACE: Thực hiện một bài test loop-back theo đường dẫn đến resource.
Những ưu điểm và nhược điểm của API
Ưu điểm của API
- API được giao tiếp hai chiều, nó phải được xác nhận trong giao dịch vì vậy các thông tin rất đáng tin cậy.
- API là một kiến trúc mã nguồn mở, nó có thể kết nối mọi lúc nhờ vào Internet.
- Hỗ trợ các chức năng RESTful một cách đầy đủ.
- Cấu trúc của API khá đơn giản, nó đơn giản hơn cấu trúc của WCF (Window Communication Foundation) tăng tính trải nghiệm với người dùng.
Nhược điểm của API
- Chi phí phát triển lớn ngoài ra còn vận hành, chỉnh sửa.
- Để sử dụng được cần có kiến thức chuyên sâu.
- Dễ gặp vấn đề bảo mật khi bị tấn công hệ thống.
Các loại API thường gặp
API SOAP
Các API này sử dụng Giao thức truy cập đối tượng đơn giản. Máy chủ và máy khách trao đổi thông đệp bằng XML. Đây là loại API kém linh hoạt được dùng phổ biến trước đây.
API RPC
Những API này được gọi là Lệnh gọi thủ tục từ xa. Máy khách hoàn thành một hàm (hoặc thủ tục) trên máy chủ còn máy chủ gửi kết quả về cho máy khách.
API Websocket
API Websocket là một bản phát triển API web hiện đại khác sử dụng các đối tượng JSON để chuyển dữ liệu. API WebSocket hỗ trợ hoạt động giao tiếp hai chiều giữa ứng dụng máy khách và máy chủ. Máy chủ có thể gửi thông điệp gọi lại cho các máy khách được kết nối, điều này khiến loại API này hiệu quả hơn API REST.
API REST
Đây là loại API phổ biến và linh hoạt nhất trên web hiện nay. Máy khách gửi yêu cầu đến máy chủ dưới dạng dữ liệu. Máy chủ dùng dữ liệu đầu vào từ máy khách này để bắt đầu các hàm nội bộ và trả lại dữ liệu đầu ra cho máy khách. Hãy cùng xem xét API REST chi tiết hơn ở bên dưới.
Tính bảo mật khi mở API?
Có 2 vấn đề bảo mật phổ biến khi mở API
- Tấn công SQL Injection
Kỹ thuật tấn công Injection hay SQL Injection là một kỹ thuật tấn công khá phổ biến. Hacker lợi dụng lỗ hổng kiểm tra dữ liệu đầu vào trong các ứng dụng web đến hệ thống quản lý cơ sở dữ liệu (DBMS) để khai thác các thông tin nhạy cảm.
Cách khắc phục: Kiểm tra các thông tin người dùng nhập vào xem có đúng không? Loại bỏ các ký tự đặc biệt bằng cách dùng Regular Expression hoặc dùng các hàm có sẵn để giảm thiểu lỗi.
- Spam request
API khi để ở chế độ công khai rất dễ bị spam.
Cách khắc phục: Tạo những request trở nên phức tạp hơn. Ví dụ như: thêm câu hỏi bảo mật, yêu cầu người dùng chờ trong giây lát để thực hiện các thao tác tiếp theo…
Cách bảo mật thông tin trong API
- Xác thực người sử dụng rồi mới cấp quyền và xác thực ứng dụng.
- Mã hóa dữ liệu được truyền đi bằng SSL
- Sử dụng chữ ký số.
- Tránh các mật khẩu cố định hoặc nhúng
Vai trò và ứng dụng của API
Vai trò
Hiện tại chúng ta đang sống trong một thế giới số, dữ liệu mang tính kết nối cần thiết hơn bao giờ hết. Các bài viết, đơn đặt hàng, việc tương tác trên mạng xã hội… có thể diễn ra ở bất cứ đâu và bất cứ lúc nào. Nhưng vì sao “điều thần kỳ” này có thể diễn ra? Vì sao dữ liệu ở nơi này có thể được chuyển đến một nơi khác nằm bên kia bán cầu một cách gần như tức thì? Đó chính là nhờ API.
Hãy tưởng tượng API giống như người phục vụ trong một nhà hàng, khách hàng đã chọn được món và muốn nhà bếp làm món ăn đó. Mắt xích còn thiếu hiện tại là một liên kết giúp đưa yêu cầu của khách đến nhà bếp và đưa thức ăn từ nhà bếp đến khách hàng.
Ứng dụng
- Web API: Web API là một hệ thống được sử dụng phổ biến trong hệ thống web. Các website hầu hết đều ứng dụng đến Web API và nó cho phép bạn kết nối, lấy dữ liệu hoặc thực hiện các cập nhật cho cơ sở dữ liệu. Ví dụ như sau: Khi bạn thiết kế các chức năng login thông Google, Facebook..vv thì điều này có nghĩa là bạn đang gọi đến API, bởi vì các ứng dụng của di động đều sẽ lấy dữ liệu thông qua API.
- API trên hệ điều hành: Windows hoặc Linux đều có nhiều API riêng biệt và họ cung cấp các tài liệu API là dạng đặc tả các hàm, phương thức cũng như các giao thức kết nối khác. Nó cũng giúp cho lập trình viên dễ dàng tạo những phần mềm ứng dụng chạy trực tiếp trên hệ điều hành.
- API của thư viện phần mềm hay framework: API thường thực hiện mô tả và quy định cho các hành động mong muốn do thư viện cung cấp. Mỗi một API đều có nhiều cách để triển khai khác nhau và nó cũng hỗ trợ cho những chương trình được viết bằng ngôn ngữ này, và cũng có thể dùng được các thư viện được viết bằng ngôn ngữ khác. Ví dụ như sau: Bạn có thể sử dụng Php để yêu cầu một thư viện có khả năng tạo file PDF được viết lên bằng ngôn ngữ lập trình C++.
- Ứng dụng API trong crypto: Dựa vào kiến trúc giúp kết nối nguồn dữ liệu của API, có thể chia API trong crypto ra làm hai loại chính: API off-chain và API on-chain . API off-chain là API được kết nối với nguồn dữ liệu ngoài chuỗi. Một vài cái tên nổi bật là Binance API, Coingecko API, Coinbase API… API on-chain là API được kết nối với nguồn dữ liệu trên chuỗi. Những cái tên nổi bật là Infura, Alchemy, Moralis… API có rất nhiều công dụng trong crypto, tiêu biểu như: Cung cấp dữ liệu giá của các cặp tài sản trên thị trường. Tuỳ vào tốc độ mà API có thể được sử dụng vào nhiều mục đích khác nhau như: làm bot giao dịch, hiển thị giá, giao dịch tài sản của một sàn thông qua một ứng dụng thứ ba… Tổng hợp thông tin của nhiều sàn trong một ví. Nhờ đó người dùng có thể theo dõi toàn cảnh thị trường hoặc tạo ra các bot giao dịch chênh lệch giá…
Lưu ý khi sử dụng API
- Ngoài việc xác định thật rõ ràng mục đích sử dụng API, trong quá trình sử dụng API, người dùng cũng cần lưu ý một số điều sau:
- Cần có đủ kiến thức khi sử dụng API: Nếu chưa hiểu rõ ràng về API bạn chỉ nên sử dụng những tài khoản thử nghiệm và không có rủi ro thiệt hại tài sản.
- Cấp quyền API: Tuỳ thuộc vào nhu cầu mà chúng ta sẽ lựa chọn cấp quyền API phù hợp để tránh các rủi ro liên quan.
- Lưu trữ API Key: Thông thường việc sử dụng API sẽ đi kèm với việc bảo quản API Key. Chúng có tầm quan trọng tương tự private key, vì nếu nắm được API Key, kẻ xấu sẽ có toàn quyền sử dụng chúng đúng như những gì chúng được cấp quyền ban đầu. Do đó, việc lưu trữ API key sao cho an toàn, thậm chí sẵn sàng xoá API key trong trường hợp cần là điều hoàn toàn cần thiết.
Lời kết
API là một kiến trúc quan trọng trong kỷ nguyên thế giới số. API là sợi dây kết nối mạng lưới thông tin toàn cầu. API và vai trò của chúng là cơ sở để hiểu được các đột phá mới trong công nghệ thông tin ở hiện tại và tương lai.