NỘI DUNG BÀI VIẾT
API là gì? API là viết tắt của Application Programming Interface – phương thức trung gian kết nối các ứng dụng và thư viện khác nhau.
API hoạt động trên thực tế như thế nào?
- Web API
Là hệ thống API được sử dụng trong các hệ thống website. Các Web API được ứng dụng trên hầu hết các website giúp bạn kết nối, lấy và cập nhật cơ sở dữ liệu như Google, Facebook, Twitter… Hầu hết các website sẽ được thiết kế theo tiêu chuẩn RESTful.
- API trên hệ điều hành
Cả hệ điều hành Windows hay Linux đều có rất nhiều API, nó được cung cấp là đặc tả các hàm, phương thức cũng như giao thức kết nối. Điều này sẽ giúp các lập trình viên tạo ra các phần mềm ứ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 (framework)
API mô tả các quy định các hành động mong muốn mà các thư viện cung cấp. Với nhiều cách triển khai khác nhau, API có thể giúp một chương trình viết có thể sử dụng thư viện được viết bởi ngôn ngữ khác.
Web API là gì?
Web API là phương thức cho phép ứng dụng khác nhau có thể giao tiếp, trao đổi dữ liệu qua lại. Dữ liệu qua Web API sẽ hiển thị dưới dạng JSON hoặc XML bằng giao thức HTTP hoặc HTTPS.
![](https://brandinfo.biz/images/companies/nhatmai/common/website/api-la-gi4.jpg)
Web API có ưu và nhược điểm gì?
Ưu điểm
- Sử dụng trên hầu hết các ứng dụng desktop, ứng dụng mobile và ứng dụng website
- Linh hoạt các định dạng dữ liệu khi trả về client: JSON, XML hoặc các định dạng khác
- Xây dựng HTTPS service nhanh chóng: URI, request/response headers, catching, versioning, content formats và có thể host trong ứng dụng hoặc trên IIS
- Mã nguồn mở, hỗ trợ đầy đủ chức năng RESTful service, sử dụng bởi bất kỳ client
- Hỗ trợ các thành phần MVC như routing, controller, action result, filter, model binder, IoC container…
- Trong các giao dịch được xác nhận từ hai chiều, đảm bảo độ tin cậy cao
Nhược điểm
- Web API chưa hoàn toàn là RESTful service, mới chỉ hỗ trợ mặc định GET, POST
- Đòi hỏi kiến thức chuyên sâu và kinh nghiệm backend tốt.
- Tốn thời gian và chi phí cho việc nâng cấp và vận hành
- Tính bảo mật không cao nếu không giới hạn điều kiện kỹ.
Làm sao để đảm bảo tính bảo mật cho API?
2 vấn đề phổ biến nhất liên quan đến bảo mật API
1. SQL Injection
Injection hay SQL Injection là một lỗi khá phổ biến. Những kẻ tấn công lợi dụng lỗ hổng của việc 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.
Hướng khắc phục: Ràng buộc thật kỹ dữ liệu người dùng nhập vào. Có thể dùng Regular Expression để loại bỏ đi các ký tự lạ hoặc các ký tự không phải là số hoặc dùng các hàm có sẵn để giảm thiểu lỗi.
2. Spam request
Những request để chế độ công khai rất dễ bị spam.
Hướng khắc phục: Hãy khiến cho những request này trở nên phức tạp hơn. Chẳng hạn: 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…
Một số phương án ngăn rò rỉ lỗ hổng thông tin trong API
- Kiểm tra thẩm quyền người sử dụng và xác thực ứng dụng: Ngoài xác thực người sử dụng cuối, bạn cần phải xác thực ứng dụng. Ví dụ nếu bạn đang sử dụng ứng dụng AirBnB hoặc Uber, những ứng dụng này sẽ gọi các API của chúng và vì vậy ứng dụng được xác thực.
- Mã hóa dữ liệu được truyền đi: Sử dụng chứng chỉ SSL (Secure Sockets Layer) để mã hóa các dữ liệu quan trọng.
- Chữ ký số: Các chữ ký số là các chuỗi ký tự duy nhất tượng trưng cho một người sử dụng. Bạn lưu trữ các chuỗi này trong cơ sở dữ liệu và chỉ cung cấp nếu người sử dụng nhập đúng tên và mật khẩu.
- Tránh các mật khẩu cố định hoặc nhúng: Đừng vì lười biếng muốn rút gọn thao tác mà sử dụng mật khẩu đơn giản hoặc lấy thông tin ID và mật khẩu được lưu cục bộ trên một ứng dụng di động.
Những API miễn phí dành cho developer
- Dog API: API Dog hoàn toàn miễn phí, cung cấp các endpoints cho các ảnh và dữ liệu văn bản về chó. Nó hỗ trợ CORS do đó chúng ta có thể dùng trực tiếp từ các ứng dụng front-end.
- Petfinder: API này cung cấp các dữ liệu về nhận nuôi thú cưng, yêu cầu xác thực bằng OAuth để truy cập dữ liệu. API này cũng hỗ trợ CORS như Dog API.
- shibe.online: shibe.online cung cấp URL cho các hình ảnh về những chú chó dễ thương để làm dữ liệu. Nó dùng các chuỗi truy vấn để lấy dữ liệu từ API.
- Anime News Network API: Nếu bạn thích Anime thì API này chính là dành cho bạn. Nó trả về dữ liệu ở các định dạng khác nhau như HTML hoặc XML. Do đó, nếu bạn cần thao tác và hiển thị dữ liệu thì bạn sẽ phải chuyển đổi từ XML sang JSON.
- Jikan: Đây là một API dữ liệu anime khác, có 1 REST API hỗ trợ CORS bên cạnh các thư viện được tạo cho các nền tảng khác nhau như Python, Ruby và JavaScript.
- JSONPlaceholder: Cung cấp một API với các yêu cầu GET, POST, PUT và DELETE có hỗ trợ CORS. Các endpoints được cung cấp với dữ liệu được tải sẵn mà chúng ta có thể dùng để hiển thị và cập nhật.
- REQ|RES: Cũng giống như JSONPlaceholder, REQ|RES cung cấp 1 API thực sự để bạn xây dựng giao diện người dùng. Nó có các endpoints cho tất cả các thao tác HTTP được sử dụng để nhận và thao tác dữ liệu người dùng fake. Các dữ liệu này đã được chuẩn bị trước nên bạn cũng không phải tự thêm vào nữa.
Tổng kết
Hy vọng với đầy đủ thông tin ở trên, tôi cung cấp đến bạn đọc về API là gì? API trong Java Sẽ giúp bạn có thể phát triển tốt hơn website cho doanh nghiệp mình..
Chúc bạn học tốt