[Infographic] Lịch sử hình thành và phát triển của API - Giao diện lập trình ứng dụng
BaroTo
6 năm trướcBình luận: 36Lượt xem: 18.483
header-api.jpg

API (Application Programming Interface - tạm dịch: giao diện lập trình ứng dụng) là một giao diện mà một hệ thống máy tính hay ứng dụng cung cấp để cho phép các yêu cầu dịch vụ có thể được tạo ra từ các chương trình máy tính khác và cho phép dữ liệu có thể được trao đổi qua lại giữa chúng.

Dễ hiểu nhất thì Facebook là một ví dụ, những nút like và share bài viết của Facebook trên các trang web tin tức chính là những API do Facebook cung cấp. Lập trình viên chỉ việc lấy nó về và chèn vào đoạn mã nguồn của website, việc đó đồng nghĩa chúng ta đã tạo ra một cổng tương tác giữa các website đó và Facebook. Khi bạn share bài viết của một website nó sẽ hiện thông tin của bài đó trên trang Facebook cá nhân của bạn.

Có hai dòng chính sách đối với việc công bố các APIs:

1. Một số công ty bảo vệ APIs của họ một cách mạnh mẽ. Ví dụ, Sony thường chỉ cung cấp API chính thức của PlayStation 2 cho các nhà phát triển PlayStation có đăng kí. Điều này là vì Sony muốn giới hạn những người có thể viết trò chơi trên PlayStation 2, và muốn thu lợi nhuận từ những người này càng nhiều càng tốt. Đây thường là chính sách đối với các công ty mà họ không thu lợi từ việc bán các hiện thực API của họ. Tuy nhiên, PlayStation 3 là công bố hoàn toàn APIs.

2. Một số công ty thì cung cấp miễn phí APIs. Ví dụ, Microsoft công bố hầu như hoàn toàn thông tin về các API, để cho các phần mềm có thể được viết chạy trên nền Windows. Việc bán của các phần mềm hãng thứ 3 đồng thời với việc phải mua Hệ điều hành Microsoft Windows. Đây thường là các công ty thu lợi nhuận từ việc bán các hiện thực API.

Infographic dưới đây sẽ giúp bạn có cái nhìn trực quan hơn về lịch sử hình thành và tốc độ phát triển của API.

[Submit] API.jpg

Nguồn: visual.ly
Tham khảo: wiki
May mà có chút kiến thức về đồ họa và mã nguồn mở nếu không thì thực sự chẳng hiểu bài viết này được. Cám ơn Mod về bài viết, rất có ý nghĩa cho anh em .
Nghe về lập trình thì hăng tiết vịt lên, nhưng mà bảo học về API thì ỉu luôn 😁
Thực sự thì các hàm API càng ngày càng trở nên quan trọng hơn. Hiện nay, nếu để nói rằng 1 trang web hoàn toàn không sử dụng các API thì quả thực rất khó.
@inuo giờ người ta cung cấp sẵn cho rồi chỉ việc dùng mà còn ko dùng thì phí quá :v....cứ như cái map ko xài API của anh Google cho thì đến kiếp nào mới làm được 1 cái map mà dùng :v
@A6_YoonA ua nghe bảo giờ nhiều doanh nghiệp và các trang web chuyển sang sài openstreetmap mà bác
@truong95 Chuyển sang dùng dữ liệu openstreetmap nhưng thông qua API của bên thứ ba, như mapbox (pinterest, foursquare,..) và phải trả phí chứ không có chuyện free đâu. Cái nữa là dữ liệu của osm ở việt nam vẫn cực kỳ nghèo nàn. Nếu ít request thì dùng google map api cho nhanh, lại miễn phí.
@hiddentrust openstreetmap cũng có api riêng mà.
Bài này chỉ nói về Web API nhỉ. Còn nhiều API khác nữa mà. Như Android API, iOS API​
Mình đang tìm hiểu về API của Instagram. Cách get danh sách follower và follow người khác, likes và nhiều thứ khác... nhưng hơi rối với cái HTTP Request 😔
bài viết của bạn là về WEB API chứ không phải chỉ API chung chung, nên đặt tên cho đúng. API là một best practice trong software engineering nên mình không nghĩ là có thể có một ai đó vào một thời điểm cụ thể trong quá khứ đã "phát minh" ra nó, tuy nhiên khái niệm này đuợc liên hệ gần gũi nhất đến các hệ điều hành, vd Posix, Cocoa hay Win32.
Nên đặt lại là WEB API chứ ko nên đặt là API chung, làm mình ngạc nhiên khi nhìn vào bài viết chẳng thấy Windows API và 1 tá các API phổ biến khác :v
@hoatongoc Người viết bài chắc không có nhiều kiến thức trong lập trình, mình nghĩ bài này cũng là được lấy từ 1 website nào đó bên nước ngoài về rồi dịch lại thôi, tiêu đề và nhiều chỗ được dịch khá tối nghĩa.
Hồi học đại học từng khư khư trong tay cuốn sách Windows API 😁
Cũng nên tham khảo những bài viết này để hiểu thêm về web API .
5 tỉ yêu cầu mỗi ngày của gg,@^#%&**
bài viết chỉ nhắc tới duy nhất WEB API , không bao gồm lịch sử của API nói chung.Đề nghị sửa lại tiêu đề cho chính xác.
driver cũng là một ứng dụng điển hình của API
API thì có đấy, nhưng để biết nó làm gì và gọi từ đâu thì :rolleyes:
1 sao cho bài viết dạng "dịch thuê" này
hiểu đơn giản API là thứ giúp lập trifnh viên thông thường tạo ra trang web hay ứng dụng nhanh hơn ,các API do các công ty lớn làm ra chứ như FPT IS thì không có đâu nhé
@hpplcc Sao lại hiểu như vậy đc nhỉ. Và API ai cũng có có thể viết ra cho ứng dụng của mình nhé.
@anh_saker bác này chuẩn này
MS cung cấp API miễn phí nhưng lại thu phí bộ phát triển Visual Studio với mức giá cực kỳ đắt đỏ. Bản express miễn phí thì lại nghèo tính năng
@spamspam Các bác có phần hơi lẫn rồi. API ko nhất thiết phải dùng với 1 IDE (VD Visual Studio) nhất định.
Có thể hiểu API là sau khi nhà sản xuất tạo ra 1 sản phẩm (phần mềm) thì sẽ cung cấp API để lập trình viên có thể truy xuất vào bên trong sản phẩm đó. Cái tên API đã nói lên mục đích của nó.
Còn khái niệm về SDK nữa, cũng dễ nhầm với API...

Nói chung thì cái topic kiểu này đưa ở tinhte là ko có phù hợp, sang bên forum nào đó về lập trình thì hơi. Mà sang đó lại ấm ớ thế này thì chắc bị chởi tóe khói 😁
@gis Mình không có nhầm lẫn đâu bạn. Trên Window thì API mạnh nhất vẫn là framework .net và gần như đi liền với Visual Studio, tất nhiên có nhiều IDE mạnh khác như eclipse, Netbean, nhưng thường đi với mục đích và API khác.

Mà công nhận Topic củ chuối, nội dung cũng chuối luôn. API đâu chỉ là trên web. Thực sự thì API đầu tiên mà mình biết là API xử lý sự kiện cửa sổ dùng để tạo ứng dụng window. Thời đó thì chưa hề có API trên web (facebook và các dịch vụ web tương tự còn chưa ra đời)
@spamspam Mình nhớ Windows 32 API có thể dùng trên Visual Studio lẫn Borland C++, C++ Builder... nói chung là họ nhà C trên Win xài tốt.
API nó là cái cơ sở nhất rồi (đối với lập trình viên) nên theo mình nhà sx sẽ ko giới hạn IDE, chỉ có IDE dùng "sướng" hơn nên nhiều người xài thôi.
Đồng thời bạn xem lại định nghĩa .NET cũng là API nhé
@gis Sự thật là mình không được học .NET một cách chính thống mà chỉ là tự học, cho nên những cái gì thuộc về lý thuyết thì mình không có chắc. Cho nên nếu mình nhầm lẫn thì cũng không có gì ngạc nhiên, nếu sai thì thông cảm 😁

Mình hiểu nó là một bộ API vì nó cung cấp một bộ giao diện lập trình với nhiều namespace như System.Io, System.Net, System.Collection, System.Window.Forms, System.Web....... Những namespace này không chỉ dùng được trong VisualStudio mà nhiều IDE khác cũng dùng được, ví dụ như SharpDevelop
@spamspam Các namespace đó mình nhớ là lớp bao phủ bên ngoài của API rồi, nghĩa là nó đc xây dựng dựa trên các API. Lập trình với namespace thực hiện 1 số chức năng nào đó sẽ sướng hơn nhiều nếu làm từ API. Bạn hình dung API như là các linh kiện điện tử tối giản nhất, namespace kia thì đã ghép một số các linh kiện với nhau phục vụ 1 chức năng nào đó. Lập trình với namespace lúc này lắm khi chỉ là gia công, kéo thả. Tuy nhiên khi bạn cần truy cập sâu vào phần mềm của nhà sx, làm những việc đặc biệt thì bạn thường cần tới API...
thấy ông Microsoft không cung cấp hàm API của Bing 1 cách miễn phí nữa không biết ai có thông tin gì về việc này không? Bao giờ sẽ bán ? hay cấm luôn?

theo mình nghĩ API giống như Hàm số, cho đầu vào, đầu ra là kết quả, Chúng ta không được can thiệp vào hệ thống hàm 😁

Cảm ơn thớt
Giống như "giao diện" của máy bán hàng tự động. Bên Cocacola sẽ cung cấp "API" cho người dùng đó là khe nhét tiền và nút bấm tương ứng các loại nước. Bạn không cần biết bên trong nó hoạt động thế nào, mà thực tế là họ cũng ko cho bạn soi vào bên trong đâu, bạn chỉ cần biết nhét xu, bấm nút và nhận lại kết quả là lon nước !

Còn SDK giống như bộ xếp hình lego, họ cung cấp cho bạn 1 bộ các "mảnh ghép", các "phương thức lắp ghép", và bạn dùng óc sáng tạo của mình để lắp ghép lại tạo ra các món đồ. Ví dụ tạo ra máy bán hàng tự động, trên đó có "API" giao tiếp với người dùng.

p/s: nếu có gì sai xót xin vui lòng đáp gạch và chỉ giáo !
API xuất hiện ở mọi nơi, và bất kỳ một lập trình viên nào cũng có thể viết được các API. Phạm vi API bài viết đề cập là quá hẹp.
  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2020 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: 209 Đường Nam Kỳ Khởi Nghĩa, Phường 7, Quận 3, TP.HCM
  • Số điện thoại: 02862713156
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019