Tổng quan về APIs ( Application Programming Interface )
API Concept :
- API là viết tắt của Application Programming Interface.
- API là một phần mềm cho phép truy câp dữ liệu hoặc dịch vụ giữa các ứng dụng khác nhau. Đó là một bộ các quy tắc mô tả cách một ứng dụng có thể tương tác với ứng dụng khác và các hướng dẫn để cho phép tương tác xảy ra.
- Người sử dụng gửi API request đến server yêu cầu thông tin và nhận được API response từ server cùng với thông tin được yêu cầu.
- API tương tự như người phục vụ trong nhà hàng.
Để thực sự hiểu cách API có thể được sử dụng để cung cấp dữ liệu và dịch vụ, chúng tôi sẽ xem xét hai tùy chọn để đặt vé máy bay. Tùy chọn đầu tiên sử dụng trang web của một hãng hàng không cụ thể. Sử dụng trang web của hãng hàng không, người dùng nhập thông tin để yêu cầu đặt chỗ. Trang web tương tác trực tiếp với cơ sở dữ liệu riêng của hãng hàng không và cung cấp cho người dùng thông tin phù hợp với yêu cầu của người dùng.
Một trang web du lịch có thể truy cập cùng thông tin này, không chỉ từ một hãng hàng không cụ thể mà nhiều loại hãng hàng không. Trong trường hợp này, người dùng nhập thông tin đặt phòng tương tự. Trang web dịch vụ du lịch tương tác với các cơ sở dữ liệu hàng không khác nhau bằng các API được cung cấp bởi mỗi hãng hàng không. Dịch vụ du lịch sử dụng từng API của hãng hàng không để yêu cầu thông tin từ hãng hàng không cụ thể đó và sau đó nó sẽ hiển thị thông tin từ tất cả các hãng hàng không trên trang web của hãng. API hoạt động như một loại tin nhắn giữa ứng dụng yêu cầu và ứng dụng trên máy chủ cung cấp dữ liệu hoặc dịch vụ. Thông báo từ ứng dụng yêu cầu đến máy chủ nơi lưu trữ dữ liệu được gọi là lệnh gọi API.
Phân loại API :
Sự khác biệt giữa Open APIs, Internal APIs và Partner APIs :
- Open APIs or Public APIs : Các API này có sẵn công khai và có thể được sử dụng không bị hạn chế. Vì các API này công khai nên nhiều nhà cung cấp API yêu cầu người sử dụng nhận khóa hoặc mã thông báo trước khi sử dụng nhằm giúp kiểm soát số lượng yêu cầu API mà họ nhận được và xử lý.
- Internal APIs : Đây là các API được sử dụng bởi một tổ chức hoặc công ty để truy cập dữ liệu và dịch vụ nôi vụ.
- Partner APIs : Đây là các API được sử dụng giữa một tổ chức hoặc công ty với đối tác để tạo thuận lợi cho việc kinh doanh giữa họ. Đối tác kinh doanh phải có giấy phép hoặc được sự cho phép để sử dụng API này.
Web service là dịch vụ có sẵn qua Internet, sử dụng World Wide Web. Có 4 loại Web service APIs :
- Simple Object Access Protocol (SOAP)
- Representational State Transfer (REST)
- eXtensible Markup Language-Remote Procedure Call (XML-RPC)
- JavaScript Object Notation-Remote Procedure Call (JSON-RPC)
SOAP (Simple Object Access Protocol):
Đây là giao thức sử dụng XML làm định dạng để truyền dữ liệu. Chức năng chính của SOAP là xác định cấu trúc của các thông điệp và phương thức giao tiếp.
REST (Representational State Transfer):
REST không phải là một giao thức như các Web service khác mà nó là một tập hợp các nguyên tắc kiến trúc có một số đặc điểm nhất định như là giao diện đơn giản, các tài nguyên được yêu cầu một cách dễ dàng và các thao tác trên tài nguyên thông qua giao diện.
So sánh SOAP and REST :
SOAP
- Tuân theo các quy tắt nghiêm ngặt và bảo mật tiên tiến
- Được điều khiển bởi Function
- Đòi hỏi nhiều băng thông
- Tuân theo những hướng dẫn lỏng lẻo cho phép các nhà phát triển đưa ra khuyến nghị dễ dàng
- Được điều khiển bởi Data
- Đòi hỏi băng thông tối thiểu
XML-RPC (eXtensible Markup Language-Remote Procedure Call):
Đây là giao thức sử dụng định dạng specific XML để truyền dữ liệu, khác với SOAP sử dụng định dạng proprietary XML. XML-RPC sử dụng bang thông tối thiểu và đơn giản hơn nhiều so với SOAP.
JSON-RPC (JavaScript Object Notation-Remote Procedure Call):
Giao thức này tương tụ như XML-RPC nhưng thay vì sử dụng định dạng XML để truyền dữ liệu thì JSON-RPC sử dụng định dạng JSON.
So sánh JSON-RPC and XML-RPC :
JSON
- Chỉ hỗ trợ text và numbers
- Tập trung chủ yếu vào Data
- Bảo mật thấp
- Hỗ trợ các loại dữ liệu khác nhau như là text, numbers, images, charts, …
- Tập trung chủ yếu vào Document
- Bảo mật tốt