Interface Software System
Interface Software System
Interface Software System
An Application Programming Interface (API) is an interface
implemented by a software program to enable its interaction with other software. It is
similar to the way the user interface facilitates interaction between humans and
computers. APIs are implemented by applications, libraries and operating systems to
determine the vocabulary and calling conventions. It may include specifications for
routines, data structures, object classes, and protocols used to communicate between
the consumer and implementer of the API.
An API is an abstraction that describes an interface for the
interaction with a set of functions used by components of a software system. The
software providing the functions described by an API is said to be an implementation
of the API.
Web APIs:
When used in the context of web development, an API is typically a defined set of
Hypertext Transfer Protocol (HTTP) request messages along with a definition of the
structure of response messages, usually expressed in an Extensible Markup Language
(XML) or JavaScript Object Notation (JSON) format.
While "Web API" is virtually a synonym for web
service, the recent trend (socalled Web 2.0) has been moving away from Simple
Object Access Protocol (SOAP) based services towards more direct Representational
State Transfer (REST) style communication
Use of APIs to share content:
•Photos can be shared from sites like Flickr and Photobucket to social network sites
like Facebook and MySpace.
•Content can be embedded, e.g., embedding a presentation from SlideShare on a
LinkedIn profile
•Content can be dynamically posted. Sharing live comments made on Twitter to a
Facebook account.
•Video content can be embedded on sites which are served by another host.
•User information can be shared from web communities to outside applications,
delivering new functionality to the web community that shares its user data via an
open API.
Implementations:
API can operate on many different systems (Mac OS X, and various
Berkeley Software Distributions (BSDs) implement this interface);
A compatible API, on the other hand, allows compiled object code to function
without any changes to the system implementing that API. This is beneficial to both
software providers and users may install older software on their new systems without
purchasing upgrades), although this generally requires that various software libraries
implement the necessary APIs as well.
API examples:
•ASPI for SCSI device interfacing
•Java APIs
•OpenGL crossplatform graphics API
•OpenAL crossplatform sound API
•OpenCL crossplatform API for generalpurpose computing for CPUs & GPUs
•Simple DirectMedia Layer (SDL)
•Windows API