API là gì? Giải thích đơn giản về API

Ngày đăng: 20/01/2021   -    Cập nhật: 21/01/2021
Mình đã gặp rất nhiều người, cả làm việc trong lĩnh vực công nghệ và những nơi khác, rất nhiều người khá mơ hồ hoặc không hiểu API là gì?


API là gì? Giải thích đơn giản về API


Về mặt kỹ thuật, API là viết tắt của Application Programming Interface. Tại một số thời điểm, hầu hết các công ty lớn đã xây dựng các API cho khách hàng của họ hoặc để sử dụng nội bộ.


Nhưng làm thế nào để bạn giải thích API một cách đơn giản cho người non-tech hiểu?


Và nó có nghĩa rộng hơn nghĩa được dùng trong lập trình không? Trước tiên, hãy quay lại và xem xét cách thức hoạt động của chính trang web.



WWW và máy chủ từ xa



Khi mình nghĩ về Web, mình tưởng tượng ra một mạng lưới lớn các máy chủ (Server) được kết nối với nhau.


Mọi trang trên internet đều được lưu trữ ở đâu đó trên máy chủ từ xa.


Máy chủ từ xa thì cũng không có gì to tát - nó chỉ là một phần của máy tính được đặt ở xa để tập trung, tối ưu hóa quá trình để xử lý các yêu cầu.


Để hiểu đơn giản, bạn có thể tạo ra một máy chủ trên máy tính xách tay của mình có khả năng cung cấp toàn bộ trang web lên internet.


> Thông thường, các lập trình viên sử dụng laptop của mình để tạo ra máy chủ cục bộ (thậm chí máy chủ ảo).


Chỉ là duy trì nó hoạt động liên tục thì không tốt cho laptop và cấu hình nó cũng quá yếu để xử lý nhiều yêu cầu.


Khi bạn nhập facebook.com vào trình duyệt của mình, một yêu cầu sẽ được gửi đến máy chủ từ xa của Facebook.


Sau đó, khi trình duyệt của bạn nhận được phản hồi từ máy chủ của Facebook, nó sẽ giải mã và hiển thị lại kết quả lên trên trình duyệt của bạn.


Đối với trình duyệt, còn được gọi là máy khách (Client), máy chủ của Facebook là một API. Điều này có nghĩa là mỗi khi bạn truy cập một trang trên Web, bạn sẽ tương tác với một số API của máy chủ từ xa.


API không giống như máy chủ từ xa - đúng hơn nó là một phần của máy chủ nhận yêu cầu và gửi lại phản hồi.



Ví dụ đơn giản về API


Một ví dụ đơn giản: Chủ tịch quy định rằng, chỉ có thư ký mới có thể trao đổi và truyền đạt ý của chủ tịch, nên bất kỳ ai muốn xin quyết định thì đều phải nói với thư ký.


Lúc này, bạn muốn xin Chủ tịch quyết định vấn đề gì đó, bạn sẽ làm như sau:



  • Đầu tiên, bạn sẽ nói chuyện với thư ký về mục đích của bạn
  • Thư ký sẽ truyền đạt lại với chủ tịch, và nhận kết quả
  • Sau đó truyền kết quả lại cho bạn.
  • Lúc này bạn sử dụng làm gì thì tùy bạn


Và Chủ tịch cũng có thể có nhiều thư ký, và có thể quy định mỗi thư ký chỉ nhận giải quyết một việc. :D


> Note: Mình nghĩ chắc những người non-tech sẽ hiểu ví dụ này :D



APIs là một cách để phục vụ khách hàng của bạn



Bạn có thể đã nghe nói về các công ty đóng gói API dưới dạng sản phẩm.


> Ví dụ: Weather Underground đã xây dựng các trung tâm theo dõi thời tiết trên toàn thế giới, họ thu thập dữ liệu và xử lý nó. Sau đó họ tạo ra API dữ liệu thời tiết và họ bán quyền truy cập đó. Ai muốn sử dụng dữ liệu thời tiết thì thay vì phải tự thu thập dữ liệu trên thực địa thì có thể mua quyền sử dụng API này. Lúc đó chỉ việc gửi yêu cầu và nhận kết quả thôi.



Một ví dụ khác về API của Google.

Minh họa về API


Tình huống ví dụ: Trang web của bạn có một biểu mẫu dùng để đăng ký lịch hẹn cho khách hàng. Bạn muốn cung cấp cho khách hàng của mình khả năng tự động tạo sự kiện lịch Google với chi tiết cuộc hẹn.


Sử dụng API: Ý tưởng là để máy chủ trang web gửi yêu cầu đến máy chủ của Google để xin kết sử dụng chức năng này. Sau đó, nếu thành công máy chủ của bạn sẽ nhận được máy chủ của Google chấp nhận, xử lý và gửi lại thông tin liên quan cho bạn, hoặc tự động gửi thông báo xác nhận lịch hẹn qua Email cho người dùng.



API này khác gì máy chủ từ xa?



Về mặt kỹ thuật, sự khác biệt là định dạng của yêu cầu và phản hồi.


Để hiển thị toàn bộ trang web, trình duyệt của bạn cần sử dụng các đoạn mã HTML, CSS. Trong khi lệnh gọi API của sẽ chỉ trả lại dữ liệu - có thể ở định dạng như JSON.


Từ góc độ người dùng, API cho phép họ hoàn thành hành động mà không cần rời khỏi trang web của bạn, làm những chức năng mà vốn Website của chúng ta không tự tạo ra toàn bộ.


Hầu hết các trang web hiện đại đều có sử dụng ít nhất một số API của bên thứ ba.


Nhiều vấn đề đã có giải pháp của bên thứ ba, có thể là ở dạng thư viện hoặc dịch vụ. Việc sử dụng giải pháp hiện có thường dễ dàng và đáng tin cậy hơn, tiết kiệm chi phí hơn, làm được những thứ hay ho hơn.


Trong lập trình, các lập trình viên có thể chia ứng dụng của họ thành nhiều máy chủ nhỏ khác và nói chuyện với nhau thông qua API. Các máy chủ thực hiện các chức năng trợ giúp cho máy chủ ứng dụng chính thường được gọi là microservices.


Tóm lại, khi một công ty cung cấp API cho khách hàng của họ, họ đã làm nhiều thứ trước đó để cung cấp cho bạn các kết quả mà bạn muốn.




Ví dụ:


Bạn có thể truy cập API của GitHub trực tiếp bằng trình duyệt của mình mà không cần access token. Đây là phản hồi JSON mà bạn nhận được khi truy cập API của người dùng GitHub trong trình duyệt của bạn: https://api.github.com/users/niiticthanoivietnam




{"login""niiticthanoivietnam","id"50826772,"node_id""MDQ6VXNlcjUwODI2Nzcy","avatar_url""https://avatars3.githubusercontent.com/u/50826772?v=4","gravatar_id""","url""https://api.github.com/users/niiticthanoivietnam","html_url""https://github.com/niiticthanoivietnam","followers_url""https://api.github.com/users/niiticthanoivietnam/followers","following_url""https://api.github.com/users/niiticthanoivietnam/following{/other_user}","gists_url""https://api.github.com/users/niiticthanoivietnam/gists{/gist_id}","starred_url""https://api.github.com/users/niiticthanoivietnam/starred{/owner}{/repo}","subscriptions_url""https://api.github.com/users/niiticthanoivietnam/subscriptions","organizations_url""https://api.github.com/users/niiticthanoivietnam/orgs","repos_url""https://api.github.com/users/niiticthanoivietnam/repos","events_url""https://api.github.com/users/niiticthanoivietnam/events{/privacy}","received_events_url""https://api.github.com/users/niiticthanoivietnam/received_events","type""User","site_admin"false,"name""Dạy học Lập trình NIIT - ICT Hà Nội","company""NIIT - ICT Hà Nội","blog""https://niithanoi.edu.vn","location""Vietnam","email"null,"hireable"null,"bio""Dạy học Lập trình chất lượng cao NIIT - ICT Hà Nội (Since 2002).\r\n#niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp","twitter_username"null,"public_repos"4,"public_gists"0,"followers"0,"following"0,"created_at""2019-05-20T09:32:38Z","updated_at""2021-01-18T01:55:58Z"}
 


với kết quả nhận được này, bạn có thể trích xuất dữ liệu, sử dụng nó trong code của mình.


> Để biết cách sử dụng đoạn mã JSON thì bạn có thể tham khảo thêm tại XỬ LÝ JSON TRONG JAVASCRIPT?



Lời kết về API là gì?



Để kết thúc, hãy xem thêm một số ví dụ về API.


"Aplication" có thể đề cập đến nhiều thứ. Dưới đây là một số trong số chúng trong ngữ cảnh của API:



  • Một phần mềm với một chức năng riêng biệt.
  • Toàn bộ máy chủ, toàn bộ ứng dụng hoặc chỉ một phần nhỏ của ứng dụng.


Về cơ bản, bất kỳ phần mềm nào có thể tách biệt rõ ràng với môi trường của nó, đều có thể là “A” trong API và có thể cũng sẽ có một số loại API.


Giả sử bạn đang sử dụng thư viện của bên thứ ba trong code của mình. Sau khi được tích hợp vào chương trình của bạn, thư viện sẽ trở thành một phần của ứng dụng tổng thể của bạn.


Là một phần mềm riêng biệt, thư viện có thể sẽ có một API cho phép nó tương tác với phần còn lại của chương trình của bạn.


Đây là một ví dụ khác:



  • Trong lập trình hướng đối tượng, code được tổ chức thành các đối tượng. Ứng dụng của bạn có thể có hàng trăm đối tượng được xác định có thể tương tác với nhau.
  • Mỗi đối tượng có một API - một tập hợp các phương thức và thuộc tính mà có thể được sử dụng để tương tác với các đối tượng khác trong ứng dụng của bạn.


Từ những giải thích này, mình tôi hy vọng bạn hiểu được API là gì và ý nghĩa rộng hơn của API cũng như những cách sử dụng phổ biến hơn của thuật ngữ ngày nay.

---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0968051561
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!