What they are? How they work?
interface that defines interactions between multiple software applications
Interfaces for Humans
Interfaces for Software
"You use an API, but speak a Protocol"
TCP/IP
UDP
Gopher
FTP
SSH/SFTP
Telnet
SMTP/POP3
HTTP(S)(2)
Internet
Streaming
Hypertext
File Transfers
Remote Shells
World Wide Web
Libraries / Frameworks
libc, Tensorflow, OpenGL, Rails, protobufs
Operating Systems
POSIX, Win32, DCOM, CORBA, ...
Remote APIs
JDBC, RPC
Web APIs
HTTP, XML-RPC, SOAP, REST, gRPC, GraphQL
Service-specific APIs
Twitter, Stripe, Twilio, Thrillshare, ...
Text-based
<SGML>
- XML
- HTML
Multi-Media
JSON⭐️
Hypertext Transfer Protocol
hypermedia, hyperlinks
WWW (World Wide Web)
by Tim Berners-Lee at CERN in 1989
request–response in the client–server model
Resources located via URLs
Request Methods (aka Verbs):
Architectural style & set of conventions heavily based on the HTTP protocol to make easier to develop Web APIs :
Roy Fielding dissertation: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm