Các loại APIs: Web và Web Service
API (Giao diện lập trình ứng dụng) được các developer tận dụng để xây dựng thêm chức năng cho ứng dụng một cách dễ dàng hơn mà không phải tự viết lại tất cả code. Các API cho phép truy cập dữ liệu từ các ứng dụng khác - ví dụ như quảng cáo ở sidebar: một request được gửi đến API tương ứng và phản hồi thành công sẽ bao gồm dữ liệu liên quan đến quảng cáo, dữ liệu này sau đó có thể được hiển thị cho người dùng trên trang web.
Trong bài viết này, chúng ta sẽ không giải thích về API mà tập trung vào phân loại các API khác nhau, các trường hợp sử dụng tương ứng trong các ứng dụng khác nhau.
Web API
Web API là một giao diện phần mềm (software interface) cho phép hai ứng dụng tương tác với nhau mà không cần bất kỳ sự can thiệp nào của người dùng. Có bốn loại Web API chính, Open API, Partner API, Internal API và Composite API.
Open API - hay còn gọi là Public API, không có hạn chế về người có thể truy cập vì chúng được cung cấp công khai. Đặc điểm của Open API là dễ sử dụng và và sử dụng bởi nhiều ứng dụng khách khác nhau.
Partner API - developer cần các quyền hoặc giấy phép (licenses) cụ thể để truy cập Partner API vì chúng không được cung cấp cho tất cả mọi người. Thông tin về Partner API thường hiển thị trên developer portal API, từ đó các developer có thể biết được cách để truy cập chúng. Open API là hoàn toàn mở, nhưng Partner API liên quan đến quá trình xác thực cụ thể để được phép truy cập.
Internal API - hay còn gọi là Private API, API loại này chỉ được cung cấp trong các hệ thống nội bộ. Trường hợp sử dụng chính cho Internal API là nội bộ trong một công ty. API nội bộ được sử dụng giữa các nhóm khác nhau của công ty để cải thiện sản phẩm và dịch vụ.
Composite API - API loại này kết hợp các API dịch vụ và dữ liệu khác nhau. Chức năng của Composite API được đặc trưng bởi một chuỗi các tác vụ chạy đồng bộ. Công dụng chính của API tổng hợp là để tăng tốc quá trình thực thi cũng như cải thiện hiệu suất cho listeners trong web interface.
Web Service - Dịch vụ Web
Ngoài bốn API web chính này còn có các dịch vụ web. Dịch vụ web là một phần mềm hoặc hệ thống sử dụng địa chỉ (URL trong trường hợp của World Wide Web) để cung cấp quyền truy cập vào các dịch vụ. Nó là một tập hợp các giao thức và tiêu chuẩn mở được sử dụng rộng rãi để trao đổi dữ liệu giữa các hệ thống hoặc ứng dụng.
Các dịch vụ web phổ biến nhất là SOAP, XML-RPC, JSON-RPC và REST.
SOAP - (Simple Object Access Protocol) sử dụng XML làm định dạng truyền dữ liệu. Chức năng chính là chuẩn hóa cấu trúc của các phương thức và thông điệp của giao tiếp - thông điệp request và response cũng như cấu trúc của payloads dựa trên định dạng dữ liệu XML. So với các API dịch vụ web khác (chẳng hạn như REST), SOAP kém linh hoạt hơn, nhưng nhiều người thích cách kiểm soát kiểu dữ liệu, cấu trúc và tiêu chuẩn của API này. SOAP được sử dụng bởi cả Private API và public API như một interface.
XML-RPC - (Extensible Markup Language) giao thức này sử dụng định dạng XML cụ thể để truyền dữ liệu, trong khi SOAP sử dụng định dạng XML được quy định và chuẩn hóa. XML-RPC đơn giản hơn nhiều so với SOAP và sử dụng băng thông tối thiểu. XML-RPC sử dụng cách gọi procedure từ xa bằng HTTP để truyền tải và XML để mã hóa. Nó được thiết kế để đơn giản nhất có thể trong khi vẫn cho phép các cấu trúc dữ liệu phức tạp được truyền, xử lý và trả về.
JSON-RPC - (JavaScript Object Notation) Tương tự như XML-RPC, giao thức này sử dụng định dạng JSON để truyền dữ liệu thay vì XML. Định dạng này tuân theo các tiêu chuẩn mở các quy ước được biết đến rộng rãi, JSON tập trung vào các ứng dụng web giúp tăng năng suất và tận dụng lợi thế của các công cụ hỗ trợ. Một ưu điểm của JSON API là giảm số lượng request và lượng dữ liệu được truyền giữa máy chủ và máy khách.
REST - (Representational State Transfer) không giống như các dịch vụ web khác, REST không phải là một giao thức, nó là một tập hợp các nguyên tắc hoặc các hạn chế về mặt kiến trúc. Dịch vụ REST yêu cầu một số đặc điểm nhất định, dễ dàng xác định trong request. Khi một RESTful client request được thực hiện, REST API truyền tải một biểu diễn trạng thái của tài nguyên được yêu cầu tới endpoint. Biểu diễn này có thể được chuyển đến ở một trong số các định dạng thông qua HTTP - JSON, HTML, Python, văn bản thuần túy, PHP hoặc XLT. JSON là phổ biến nhất vì nó có thể được đọc bởi cả máy và người. Ngoài ra, các tiêu đề và tham số rất quan trọng đối với các method của HTTP RESTful API request.