API là thuật ngữ không còn quá xa lạ, đặc biệt là trong xu hướng chuyển đổi số đang diễn ra mạnh mẽ như hiện nay. API có tính ứng dụng thực tế cao trong lĩnh vực công nghệ thông tin, tạo sự “tương tác” dễ dàng hơn giữa các hệ thống với nhau, từ đó thúc đẩy sự đổi mới và tăng tính hiệu quả cho nhiều hoạt động từ đời sống, xã hội cho đến hoạt động kinh doanh. Thông qua bài viết này, hãy cùng BAC’s Blog tìm hiểu rõ hơn về API, cách hoạt động cũng như tính ứng dụng trong thực tế.
1. API là gì ?
2. API hoạt động ra sao?
3. Các thuật ngữ quan trọng trong API
3.1. Request và Response
3.2. REST
REST hay RESTful là viết tắt của Representational State Transfer là quy tắc về ngôn ngữ giao tiếp giữa người và máy để máy có thể hiểu được những ý định của con người.
Một số đặc tính của REST:
- Resource-based
- Resource-based dịch nghĩa tiếng Việt là dựa trên nguồn dữ liệu. Mỗi một Server mà chúng ta sử dụng API đều là một nguồn.
- Ví dụ, bạn xây dựng một trang web và liên kết với API của Tiki để lấy dữ liệu, thì lúc này dữ liệu Tiki là resource của bạn.
- Representation
Trong cuộc sống đời thường, khi cần nhắn tin trao đổi bằng các loại ngôn ngữ khác nhau bạn sẽ dùng các phương thức khác nhau như chữ tượng hình hoặc kiểu bảng chữ cái. Đối với máy tính cũng vậy, chúng cũng cần cách thức biểu diễn với các nguyên tắc riêng để có thể giao tiếp với nhau. Hai phương thức phổ biến nhất là JSON và XML.
- Các ràng buộc
- Uniform interface (Uniform Resource Identifier / Locator, hay URI / URL): Thuật ngữ này có nghĩa cả hai sẽ thống nhất về các thông tin và quyền hạn từ ban đầu, mọi thứ sẽ không thay đổi trong cả quá trình sử dụng. Vậy nên với vai trò là một BA, bạn cần suy nghĩ thấu đáo và lường trước nhu cầu của hệ thống về sự phát triển trong tương lai để đưa ra các Uniform interface từ ban đầu. Cụ thể, 2 tháng trước trang web của bạn cần lấy thông tin về tên và giá sản phẩm tại Shopee, tuy nhiên hiện tại cần thêm mô tả và đánh giá về sản phẩm. Điều này sẽ rất khó khăn cho nhóm của bạn để có thể lấy thêm các trường dữ liệu và tốn thêm nhiều thời gian. Mặt khác, đừng nên tham lam quá khi mong muốn quyền hạn quá nhiều vì nên nhớ một số API cần trả phí khi sử dụng!
- Client-server architecture: Đây là sự tuân thủ kiến trúc Client – Server. Vai trò và trách nhiệm của hai bên được quy định từ ban đầu và sẽ không bất kỳ sự phá vỡ nào. Client luôn là người sử dụng tài nguyên và Server luôn phải là người cung cấp, nắm giữ.
- Stateless: Từ này khi dịch ra tiếng Việt có vẻ khá trừu tượng, khó hiểu nhưng thực tế là đòi hỏi các thông tin về yêu cầu cần được đưa đầy đủ. Ví dụ, mỗi lần gửi request cho Twitter để lấy thông tin về các bài viết được xuất bản cuối tuần, thì cần thông tin chính xác là thứ bảy hay chủ nhật hay cả hai.
- Cacheable: Có thể lưu vào bộ nhớ đệm là ý nghĩa của thuật ngữ trên. Mặc dù Stateless giúp thông tin được chính xác hơn nhưng đồng nghĩa với việc trang web hoặc ứng dụng sẽ mất nhiều thời gian hơn rất nhiều để truy xuất thông tin, dẫn đến việc giảm hiệu suất trang web. Vậy thì bộ nhớ đệm chính là giải pháp cho trường hợp trên, với những request đã được yêu cầu từ trước thì những phản hồi sẽ nhanh hơn.
- Layered system: Trong một số trường hợp Client và Server không giao tiếp trực tiếp với nhau mà thông qua các lớp trung gian thì chúng được gọi là layered system. Nhiệm vụ của layered system dùng để “gánh bớt” một lượng cache cho hệ thống, từ đó có thể tăng hiệu suất.
4. Ưu điểm và nhược điểm của API
- Có thể dùng API trên đa dạng các nền tảng của desktop, điện thoại di động mobile hay website.
- Với mỗi nền tảng thì API sẽ linh hoạt các định dạng dữ liệu sao cho phù hợp với các ứng dụng trên các hệ điều hành đó.
- Người dùng có thể thuận tiện xây dựng HTTP server khi dùng API để việc lập trình trở nên dễ dàng hơn.
- API sử dụng các mã nguồn mở với chức năng RESTFUL nên có thể ứng dụng vào bất cứ hệ điều hành nào để hỗ trợ JSON và XML.
- Có thể dùng API để trao đổi thông tin 2 chiều, đảm bảo được độ tin cậy cho các bên.
- Các thành phần MVC như Model Binder, Action, Unit Test, Controller,… đều có thể được API hỗ trợ đầy đủ các tính năng.
- API Website chưa hỗ trợ tất cả các server, nó chỉ mới hỗ trợ POST và GET mà thôi.
- Người dùng cần có hiểu biết kỹ càng và có kinh nghiệm backend thì mới có thể tận dụng triệt để các tính năng mà API mang lại.
- Việc phát triển, vận hành hay nâng cấp API là không hề dễ dàng và cần một thời gian dài để thực hiện. Thậm chí, người dùng còn phải trả một chi phí khá lớn cho việc đó.
- Nếu chủ sở hữu API chưa giới hạn kỹ các điều kiện thì vẫn có thể bị tấn công hệ thống và không đảm bảo được việc bảo mật.
5. API thường ứng dụng vào đâu?
- Web API: Đây là ứng dụng thường gặp nhất của API, cho phép người dùng truy cập, lấy dữ liệu, cập nhật cơ sở dữ liệu. Web API là giao diện xử lý tác vụ giữa trình duyệt web và máy chủ web. Chẳng hạn, bạn có thể dễ dàng tạo mới chức năng login thông qua Twitter, Youtube, Facebook, Google,… đồng nghĩa với việc đang truy xuất đến API.
- API của framework hay thư viện phần mềm: API quy định và mô tả các tác vụ mà thư viện phần mềm cung cấp. API có thể được viết bằng nhiều ngôn ngữ khác nhau, triển khai hoạt động bằng nhiều cách khác nhau. Chẳng hạn, bạn có thể tạo file PDF bằng ngôn ngữ C++ bằng cách dùng Php yêu cầu thư viện phần mềm.
- API trên hệ điều hành: Hệ điều hành Linux hay Windows sở hữu đa dạng các API khác nhau, cung cấp cơ sở dữ liệu cho API để mô tả các hàm và cách thức giao tiếp thường dùng. Từ đó, góp phần hỗ trợ lập trình viên tạo ra các ứng dụng phần mềm kết nối và tương tác trực tiếp với hệ điều hành.
6. Một số cách để ngăn chặn rò rỉ thông tin khi dùng API
- Xác thực cẩn thận thẩm quyền của người dùng cũng như ứng dụng
- Mã hóa các dữ liệu sẽ được truyền tải từ các nền tảng
- Hạn chế đặt mật khẩu cố định hoặc quá dễ đoán
- Dùng chữ ký số để bảo mật
Nhu cầu đào tạo doanh nghiệp
CÁC KHOÁ HỌC BUSINESS ANALYST BACs.VN DÀNH CHO BẠN
Khoá học Online:
Khoá học Offline:
Tại Tp.HCM:
Tại Hà Nội:
Tham khảo lịch khai giảng TẤT CẢ các khóa học mới nhất
Ban biên tập nội dung – BAC