API là gì? Tại sao nó phải có ở các website lớn?

26.11.2018

API là gì?

API là gì?

API là viết tắt của cụm từ Application Programming Interface tiếng Việt là Giao diện lập trình ứng dụng. API là tập các định nghĩa phương thức, giao thức và công cụ xây dựng phần mềm ứng dụng, với nó các lập trình viên sẽ dễ dàng xây dựng các chương trình máy tính. API cũng có thể cung cấp phương thức để các ứng dụng từ xa có thể yêu cầu dịch vụ đến hệ thống ứng dụng cung cấp dịch vụ và từ đó có thể trao đổi dữ liệu giữa các hệ thống. Tưởng tượng đơn giản một chút, API chính là những cái ổ cắm được thiết kế sẵn giúp cho chúng ta kết nối các thiết bị đơn giản hơn bằng cách lấy phích cắm cắm vào ổ cắm.

Có rất nhiều các loại API khác nhau tùy thuộc vào phân ngành trong CNTT:

  • Hệ thống API trên nền tảng web còn gọi vắn tắt là web API: Hiện đang rất phổ biến, các website lớn đề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 dữ liệu vào hệ thống. Ví dụ thực tế, nếu bạn sử dụng dịch vụ bán hàng trực tuyến của Lazada, bạn sẽ cần phải thực hiện một số các tác vụ như tạo sản phẩm mới, cập nhật sản phẩm mới. Giả sử bạn có 1000 mặt hàng (thực tế có nhiều đơn vị phân phối có số lượng sản phẩm rất lớn), việc cập nhật số lượng tồn kho bằng tay là cực kỳ vất vả và dễ dẫn đến nhầm lẫn. Lazada cung cấp hệ thống API và bạn có thể theo các đặc tả xây dựng một kết nối từ hệ thống của bạn sang Lazada và mọi thứ sẽ tự động hết.
  • Hệ thống API trên Hệ điều hành: Khái niệm này có trước cả web API, khi Microsoft cung cấp các hệ điều hành Windows thì đều cung cấp thêm các tài liệu API là đặc tả các hàm, phương thức, lời gọi hàm cũng như các giao thức kết nối cho lập trình viê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.
  • Các API của thư viện phần mềm hoặc framework: API mô tả và quy định các hành vi mong muốn mà các thư viện cung cấp, một API có thể có nhiều các triển khai khác nhau và nó cũng giúp cho một chương trình viết bằng ngôn ngữ này có thể sử dụng thư viện được viết bằng ngôn ngữ khác. API cũng có thể liên quan đến các framework khi framework được xây dựng trên nhiều các thư viện và thực thi nhiều các API khác nhau. Tuy nhiên việc sử dụng API trên framework không giống với thông thường, truy cập đến các API được xây dựng trong framework sẽ mở rộng nội dung của nó và các class mới được “cắm” vào (plug) khung tự nó. Kiểm soát tổng thể luồng ứng dụng có thể nằm ngoài tầm kiểm soát của thành phần gọi bằng cách đảo ngược kiểm soát – Inversion of Control

Internet hiện nay đã quá phổ biến với rất nhiều các website, ứng dụng web… các ứng dụng trên web đã tiến dần đến phần mềm ứng dụng thông thường trong hệ điều hành, chính vì vậy khái niệm API giờ đây cũng gắn liền với các trang web. Khi bạn gặp thuật ngữ API ở đâu đó thì có tới 80% khả năng đó chính là web API. Tất cả những website lớn cung cấp nội dung, dịch vụ… đều đã xây dựng các hệ thống web API của riêng mình.

Tại sao web API có mặt ở hầu hết các website lớn?

Các website lớn là các hệ thống web có số lượng người dùng cực lớn, cung cấp số lượng nội dung đồ sộ hoặc các dịch vụ đa tầng. Như vậy, nếu không có cơ chế để các ứng dụng ngoài tương tác với các hệ thống lớn này thì quả là một khó khăn khó vượt qua. Chúng ta cùng quay lại một câu chuyện thực tế về một ứng dụng web kết nối đến các hệ thống bán hàng trực tuyến như Lazada, Tiki, Sendo, Adayroi…

Mỗi khi kho hàng của bạn có một biến động, bạn cần cập nhật biến động này đến các kênh bán hàng ở trên, nếu thực hiện bằng tay thì quả là một khó khăn không tưởng. Mỗi kênh bán hàng trên đều cung cấp các hệ thống web API, bạn cần xây dựng một ứng dụng thực hiện các cú pháp theo đặc tả API của từng kênh bán hàng, và mọi việc sẽ tự động giống như bạn và Lazada, Tiki, Sendo… chỉ là một hệ thống vậy. Đó cũng chính là mục đích của API, nó làm cho các lập trình viên dễ dàng sử dụng các công nghệ được xây dựng sẵn trong các ứng dụng để tạo ra một hệ thống lớn mà không cần quan tâm đến các hệ thống này xây dựng bằng ngôn ngữ gì.

Web API hoạt động như thế nào?

Trong phần API là gì chúng ta đã nói đến rất nhiều các loại API khác nhau, hiện nay khi nói đến API đa phần mọi người hiểu là web API và trong phần tiếp theo nói về hoạt động của API chúng ta cũng sẽ chỉ đề cập đến web API hay là các API dựa trên nền tảng web. Các API này bản chất là các xử lý kiểu như trang web với các URL nhưng thay vì trả về một trang web với nội dung là HTML (Xem HTML là gì?) thì nó trả về một nội dung dạng JSON hoặc XML. Với mô hình như ở trên chúng ta thấy API hoạt động với 4 bước:

  1. Đầu tiên là xây dựng URL API để gửi đến máy chủ cung cấp nội dung, dịch vụ thông qua giao thức HTTP hoặc HTTPS.
  2. Tại máy chủ cung cấp nội dung, dịch vụ sẽ thực hiện kiểm tra xác thực nếu có và tìm đến nguồn tài nguyên thích hợp để tạo nội dung trả về phù hợp.
  3. Máy chủ trả về kết quả theo định dạng JSON hoặc XML thông qua giao thức HTTP/HTTPS.
  4. Tại nơi yêu cầu ban đầu (là website của bạn hoặc ứng dụng web, ứng dụng smart phone của bạn), dữ liệu JSON/XML sẽ được phân tích (parser) để thực hiện tiếp các hoạt động như lưu dữ liệu xuống Cơ sở dữ liệu, hiển thị dữ liệu…

Tiếp theo chúng ta thử thực hiện một API của Lazada, khi đăng nhập Lazada chúng ta sẽ có một giao diện xây dựng URL cho API như sau:

Trên đây là giao diện xây dựng đường dẫn yêu cầu đến API của Lazada, bản thân web API hoạt động trên giao thức HTTP hoặc HTTPS là một đường dẫn URL (Xem URL là gì). Sau khi có cú pháp URL đầy đủ, chúng ta thực hiện gửi đến máy chủ Lazada thông qua Internet. Chú ý: bạn hoàn toàn có thể chạy đường dẫn URL này trên trình duyệt web, dữ liệu trả về sẽ là dạng XML hoặc JSON tùy thuộc lựa chọn, nếu chú ý trong ví dụ trên đây Format=json nên dữ liệu trả về ở dạng json.

Dữ liệu trả về này chúng ta thực hiện parse trên ứng dụng và như vậy kết thúc một chu kỳ làm việc với API.

Kết luận

Đến đây hẳn bạn đã trả lời được câu hỏi API là gì? và Tại sao API ngày càng quan trọng trong thế giới web? Trong khuôn khổ một bài giới thiệu chúng ta chỉ dừng lại những gì căn bản nhất về API. Nếu bạn có quan tâm hơn đến API như cách xác thực trong API, cách tạo ra các hệ thống API

Nguồn: Tham khảo

Tin trước: Xây dựng văn hoá doanh nghiệp: 8 loại hình đặc trưng

Tin tiếp: Private Cloud nền tảng HCI: Giải pháp giúp doanh nghiệp tối ưu chi phí đầu tư