Litecoin namecoin merged mining pools
11 commentsBest iq option bitcoin trading signals coupons uk
In computer programming , an application programming interface API is a set of subroutine definitions, protocols , and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer.
An API may be for a web-based system, operating system , database system , computer hardware or software library. An API specification can take many forms, but often includes specifications for routines , data structures , object classes , variables or remote calls.
Documentation for the API is usually provided to facilitate usage and reimplementation. Just as a graphical user interface makes it easier for people to use programs, application programming interfaces make it easier for developers to use certain technologies in building applications.
By abstracting the underlying implementation and only exposing objects or actions the developer needs, an API simplifies programming. An API is usually related to a software library. The API describes and prescribes the expected behavior a specification while the library is an actual implementation of this set of rules. A single API can have multiple implementations or none, being abstract in the form of different libraries that share the same programming interface.
The separation of the API from its implementation can allow programs written in one language to use a library written in another. API use can vary depending on the type of programming language involved. An API for a procedural language such as Lua could primarily consist of basic routines to execute code, manipulate data or handle errors, while an API for an object-oriented language such as Java would provide a specification of classes and their class methods.
Language bindings are also APIs. By mapping the features and capabilities of one language to an interface implemented in another language, a language binding allows a library or service written in one language to be used when developing in another language. An API can also be related to a software framework: Moreover, the overall program flow of control can be out of the control of the caller and in the hands of the framework via inversion of control or a similar mechanism.
An API can specify the interface between an application and the operating system. Microsoft has shown a strong commitment to a backward-compatible API, particularly within their Windows API Win32 library, so older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode". Remote APIs allow developers to manipulate remote resources through protocols , specific standards for communication that allow different technologies to work together, regardless of language or platform.
For example, the Java Database Connectivity API allows developers to query many different types of databases with the same set of functions, while the Java remote method invocation API uses the Java Remote Method Protocol to allow invocation of functions that operate remotely, but appear local to the developer.
A modification on the proxy object will also result in a corresponding modification on the remote object. Web APIs are the defined interfaces through which interactions happen between an enterprise and applications that use its assets, which also is a SLA to specify functional provider and expose the service path or url for its API users, An API approach is an architectural approach that revolves around providing programmable interfaces to a set of services to different applications serving different types of consumers.
An example might be a shipping company API that can be added to an eCommerce-focused website, to facilitate ordering shipping services and automatically include current shipping rates, without the site developer having to enter the shipper's rate table into a web database. While "web API" historically has been virtually synonymous for web service , the recent trend so-called Web 2. In this way, content that is created in one place can be dynamically posted and updated in multiple locations on the web.
The design of an API has significant impact on its usability. APIs are one of the most common ways technology companies integrate with each other. Those that provide and use APIs are considered as being members of a business ecosystem. The main policies for releasing an API are: An important factor when an API becomes public is its interface stability.
Changes by a developer to a part of it—for example adding new parameters to a function call—could break compatibility with clients that depend on that API. When parts of a publicly presented API are subject to change and thus not stable, such parts of a particular API should be explicitly documented as unstable. For example, in the Google Guava library the parts that are considered unstable, and that might change in the near future, are marked with the Java annotation Beta.
A public API can sometimes declare parts of itself as deprecated. This usually means that such part of an API should be considered candidates for being removed, or modified in a backward incompatible way. Therefore, deprecation allows developers to transition away from parts of the API that will be removed or unsupported in the future. API documentation describes what services an API offers and how to use those services, aiming to cover everything a client would need to know for practical purposes.
Documentation is crucial for the development and maintenance of applications using the API. Restrictions and limitations on how the API can be used are also covered by the documentation.
For instance, documentation for an API function could note that its parameters cannot be null, that the function itself is not thread safe , [36] or that a decrement and cancel protocol averts self-trading.
API documentation can be enriched with metadata information like Java annotations. This metadata can be used by the compiler, tools, and by the run-time environment to implement custom behaviors or custom handling. In , Oracle Corporation sued Google for having distributed a new implementation of Java embedded in the Android operating system. Judge William Alsup ruled in the Oracle v. Google case that APIs cannot be copyrighted in the U. S, and that a victory for Oracle would have widely expanded copyright protection and allowed the copyrighting of simple software commands:.
To accept Oracle's claim would be to allow anyone to copyright one version of code to carry out a system of commands and thereby bar all others from writing their own different versions to carry out all or part of the same commands.
In , however, Alsup's ruling was overturned on appeal, though the question of whether such use of APIs constitutes fair use was left unresolved. In , following a two-week trial, a jury determined that Google's reimplementation of the Java API constituted fair use, but Oracle vowed to appeal the decision.
From Wikipedia, the free encyclopedia. For other uses, see API disambiguation. Retrieved 29 July Retrieved 2 August Archived from the original on Retrieved 16 June The New Generation of Web Applications". Institute of Electrical and Electronics Engineers. Retrieved 26 July Retrieved 21 February Association for Computing Machinery. Retrieved 8 August Advances in Software Engineering and Knowledge Engineering. Kin Lane via 3scale. Creating an Economic Moat".
Retrieved 22 July Google Core Libraries for Java 1. Retrieved March 27, Device driver Loadable kernel module Microkernel User space. Computer multitasking Fixed-priority preemptive Multilevel feedback queue Preemptive Round-robin Shortest job next. Retrieved from " https: Technical communication Application programming interfaces.
Views Read Edit View history. In other projects Wikimedia Commons. This page was last edited on 14 May , at By using this site, you agree to the Terms of Use and Privacy Policy.