API là gì? Tại sao API lại trở nên quan trọng?

Hiện nay, API đang là một trong những ứng dụng được sử dụng ngày càng nhiều và phổ biến. Các kiến trúc ứng dụng ngày nay đã và đang được phát triển mà không quá phụ thuộc vào các ngôn ngữ lập trình đã góp phần thúc đẩy ứng dụng API.  Vậy API là gì? Các khái niệm xoay quanh API gồm những gì? Tất cả đều sẽ được BAC’s Blog lý giải qua bài viết dưới đây.

1. Khái niệm API ?
API là Application Programming Interface là một trung gian phần mềm cho phép hai ứng dụng giao tiếp với nhau. 
Nó là giao diện cho phép một ứng dụng giao tiếp với ứng dụng khác thông qua các lệnh đơn giản và cách các lệnh này được gửi và định dạng mà dữ liệu được truy xuất thông qua API có thể khác với API SOAP hoặc REST.
API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML.
API là viết tắt của cụm từ Application Programming Interface, nghĩa là giao diện lập trình ứng dụng
API là viết tắt của cụm từ Application Programming Interface, nghĩa là giao diện lập trình ứng dụng
 
2. Đặc điểm nổi bật
  • API sử dụng mã nguồn mở, dùng được với mọi client hỗ trợ XML, JSON.
  • API có khả năng đáp ứng đầy đủ các thành phần HTTP: URI, request/response headers, caching, versioning, content forma…. 
  • Mô hình web API dùng để hỗ trợ MVC. Ngoài ra, nó cũng hỗ trợ RESTful đầy đủ các phương thức như: GET, POST, PUT, DELETE các dữ liệu.
  • Được đánh giá là một trong những kiểu kiến trúc hỗ trợ tốt nhất với các thiết bị có lượng băng thông bị giới hạn như smartphone, tablet…

API có thể được sử dụng với mọi client hỗ trợ XML, JSON

API có thể được sử dụng với mọi client hỗ trợ XML, JSON

3. Ưu và nhược điểm của của API

Ưu điểm của API

  • Giao tiếp hai chiều phải được xác nhận trong các giao dịch sử dụng API. Cũng chính vì vậy mà các thông tin rất đáng tin cậy.
  • Kết nối mọi lúc nhờ vào Internet.
  • Hỗ trợ chức năng RESTful một cách đầy đủ.
  • Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test.
  • Cấu hình đơn giản khi được so sánh với WCF.

Nhược điểm của API

  • Tốn nhiều chi phí phát triển, vận hành, chỉnh sửa.
  • Đòi hỏi kiến thức chuyên sâu.
  • Có thể gặp vấn đề bảo mật khi bị tấn công hệ thống.
4. Các thuật ngữ quan trọng trong API 
4.1. Request và Response
Request có nghĩa là yêu cầu, phía Client sẽ gửi “request” (yêu cầu) đến phía Server về những mong muốn kết quả của mình. Khi nhận được yêu cầu, phía Server sẽ trả lại kết quả thì đó gọi là Response.
4.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.
5. Ứng dụng của API
  • Web API: Là hệ thống API được sử dụng trong các hệ thống website, chẳng hạn: Google, Facebook… Hầu hết các website đều cung cấp hệ thống API cho phép bạn kết nối, lấy dữ liệu hoặc cập nhật cơ sở dữ liệu. Đa số Web API được thiết kế theo tiêu chuẩn RESTful.

Lập trình viên có thể sử dụng API do hệ điều hành cung cấp để thiết kế các ứng dụng kết nối trực tiếp với hệ điều hành

Lập trình viên có thể sử dụng API do hệ điều hành cung cấp để thiết kế các ứng dụng kết nối trực tiếp với hệ điều hành

  • API trên hệ điều hành: Windows hay Linux có rất nhiều API. Họ cung cấp các tài liệu API là đặc tả các hàm, phương thức cũng như các giao thức kết nối. Nó giúp lập trình viên có thể tạo ra các phần mềm ứng dụ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ả và quy định các hành động mong muốn mà các thư viện cung cấp. Một API có thể có nhiều cách triển khai khác nhau, giúp cho một chương trình viết bằng ngôn ngữ này có thể sử dụng được thư viện viết bằng ngôn ngữ khác.
Thông qua bài viết trên mình mong rằng những thông tin này sẽ giúp các bạn nắm bắt được phần nào về API những điều cần biết về API và các ứng dụng của API trên website cũng như trong đời sống của chúng ta vì chúng ta đều biết tầm quan trọng của API trong đời sống. Đừng quên đón xem các bài viết mới sẽ được cập nhật thường xuyên tại BAC’s Blog.

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.
 
 

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

 

Previous Post
Next Post