Application Programming Interface (API)
(Redirected from Software API)
Jump to navigation
Jump to search
An Application Programming Interface (API) is a computing system interface that can be used for building a software application (through standardized program interaction and component communication).
- AKA: Software API.
- Context:
- It can (typically) expose API Function through API subroutines and API endpoints.
- It can (typically) define API Operation via methods and protocols.
- It can (typically) implement API Security using access control.
- It can (typically) handle API Version through version strategy.
- It can (typically) support API Documentation via interface description.
- It can (typically) measure API Performance through performance metrics.
- It can (typically) implement API Error Handling through error responses.
- It can (typically) manage API Lifecycle through lifecycle phases.
- It can (typically) enable Cross-Platform Integration through platform-agnostic protocols.
- It can (typically) collect API Analytics through monitoring systems.
- It can (often) be specified by an API Specification, which describes its functionalities, methods, and data formats.
- It can (often) be tested via an API Testing Task (often a component test).
- It can (often) hide internal details behind interface contracts.
- It can (often) enable system interoperability through standard protocols.
- It can (often) provide backward compatibility using version control.
- It can (often) optimize API Response Time via caching strategy.
- It can (often) provide API Status Code for error classification.
- It can (often) support API Deprecation via sunset policy.
- It can (often) support Multiple Client Languages via language bindings.
- It can (often) track API Usage Patterns via usage metrics.
- ...
- It can range from being a Simple API to being a Complex API, depending on its functionality scope.
- It can range from being a Single-Purpose API to being a Multipurpose API, depending on its usage scope.
- It can range from being a Synchronous API to being an Asynchronous API (that implements API callbacks), depending on its interaction pattern.
- It can range from being a Monolithic API to being a Microservice API, depending on its architectural style.
- It can range from being a Low-Latency API to being a High-Throughput API, depending on its performance requirements.
- It can range from being a Basic Error Handler to being a Comprehensive Error Handler, depending on its error handling strategy.
- It can range from being an Experimental API to being a Production API, depending on its maturity level.
- It can range from being a Platform-Specific API to being a Universal API, depending on its platform support.
- It can range from being a Basic Monitored API to being an Advanced Monitored API, depending on its monitoring capability.
- ...
- It can utilize mechanisms like Webhooks, WebSockets, Server-Sent Events (SSE), and Message Queues for asynchronous communication.
- It can be behind an API Gateway for request management.
- It can foster Event-Driven Architecture through Asynchronous APIs.
- It can enable Non-Blocking Operations in Asynchronous APIs, allowing the client to perform other tasks while waiting for the server.
- It can use protocols such as HTTP, MQTT, AMQP, and Kafka in Asynchronous APIs.
- ...
- Examples:
- Service Integration APIs, such as:
- Social Media APIs, such as:
- Twitter API for social content management and analytics tracking (as of 2024).
- Facebook Graph API for social graph access and user data integration (as of 2024).
- Instagram API for media content integration and business features (as of 2024).
- LinkedIn API for professional network integration and business connectivity (as of 2024).
- Payment Processing APIs, such as:
- Stripe API for payment processing and subscription management (as of 2024).
- PayPal API for transaction processing and payment integration (as of 2024).
- Square API for point of sale integration and payment handling (as of 2024).
- Adyen API for global payment processing and payment method integration (as of 2024).
- Communication APIs, such as:
- Twilio API for programmable communication and messaging services (as of 2024).
- SendGrid API for email delivery and marketing automation (as of 2024).
- Mailchimp API for email campaign management and audience targeting (as of 2024).
- MessageBird API for global messaging and voice services (as of 2024).
- Social Media APIs, such as:
- Infrastructure APIs, such as:
- Mapping APIs, such as:
- Google Maps API for location services and map integration (as of 2024).
- Mapbox API for custom map rendering and geospatial analysis (as of 2024).
- OpenStreetMap API for open source mapping and location data (as of 2024).
- Here Maps API for enterprise mapping solutions and fleet management (as of 2024).
- Cloud Storage APIs, such as:
- Dropbox API for file management and content sharing (as of 2024).
- Google Drive API for document storage and collaboration tools (as of 2024).
- Box API for enterprise content management and security controls (as of 2024).
- OneDrive API for personal storage integration and file synchronization (as of 2024).
- Cloud Platform APIs, such as:
- AWS API for cloud resource management and service orchestration (as of 2024).
- Google Cloud API for cloud infrastructure and platform services (as of 2024).
- Azure API for microsoft cloud integration and enterprise solutions (as of 2024).
- Mapping APIs, such as:
- Development Tool APIs, such as:
- Version Control APIs, such as:
- GitHub API for repository management and development workflow (as of 2024).
- GitLab API for code management and CI/CD pipelines (as of 2024).
- Bitbucket API for source control integration and team collaboration (as of 2024).
- Monitoring APIs, such as:
- New Relic API for application performance monitoring and system metrics (as of 2024).
- Datadog API for infrastructure monitoring and analytics platform (as of 2024).
- Grafana API for monitoring visualization and dashboard creation (as of 2024).
- Testing APIs, such as:
- Selenium API for web automation testing and browser interaction (as of 2024).
- Postman API for API testing and documentation generation (as of 2024).
- JUnit API for unit testing framework and test automation (as of 2024).
- Version Control APIs, such as:
- ...
- API Architecture Styles, such as:
- REST API Implementations, such as:
- RESTful Service for resource management using HTTP methods.
- REST Endpoint for CRUD operations using URL patterns.
- GraphQL API Implementations, such as:
- GraphQL Query for flexible data fetching using query language.
- GraphQL Mutation for data modification using operation types.
- gRPC API Implementations, such as:
- REST API Implementations, such as:
- ...
- Service Integration APIs, such as:
- Counter-Examples:
- Software Development Kit, which provides development tools rather than just interface.
- User Interface, which interfaces with human users rather than programs.
- Library Implementation, which provides code implementation rather than just interface specification.
- See: API Documentation, Communication Protocol, Data Exchange, Microservices, Middleware, Service-Oriented Architecture, Software Development Kit, Web Service, API Specification, API Testing, API Security, API Gateway, API Management, API Version.
References
2024-12-30
- Perplexity.ai
- Question: What is an API? Explain its key characteristics, components, and popular examples. Include information about different implementation types and how they enable communication between applications.
- Answer: An API is a set of rules, protocols, and tools that enables different software applications to communicate and exchange data with each other. It acts as a software intermediary that defines how applications can request and exchange services, features, and data.
- Key Characteristics:
- Purpose and Function:
- Serves as a connection between computers or computer programs.
- Hides internal system details while exposing only necessary parts to programmers.
- Enables secure and controlled data exchange between applications.
- Components:
- Specification: Defines how information is exchanged between programs.
- Implementation: The software interface that follows the specification.
- Documentation: Technical instructions explaining how to work with the API.
- Purpose and Function:
- Popular API Examples:
- Social Media:
- Twitter API: Enables bot creation, scheduling posts, and analytics tracking.
- Instagram API: Allows businesses to integrate Instagram feeds with websites and enable direct shopping.
- Technology Services:
- Google Maps API: Enables embedding maps into websites and applications.
- PayPal API: Handles transaction workflows, including payments, subscriptions, and invoicing.
- Twilio API: Provides access to communication technology integration.
- Cloud Services:
- Dropbox API: Enables document storage and management functionality.
- MongoDB API: Provides database operations interface for NoSQL databases.
- Social Media:
- Implementation Types:
- Data API: Connect applications with database systems.
- Operating System API: Define application usage of OS resources.
- Remote API: Enable interaction between applications on different devices.
- Web API: Transfer data and functionality over HTTP protocol.
- Key Characteristics:
- Citations:
[1] https://www.ibm.com/think/topics/api [2] https://en.wikipedia.org/wiki/Api [3] https://blog.postman.com/top-30-apis-for-best-developer-experience/ [4] https://blog.dreamfactory.com/6-examples-of-apis-we-use-in-our-everyday-lives [5] https://aws.amazon.com/what-is/api/ [6] https://katalon.com/resources-center/blog/api-examples [7] https://www.techtarget.com/searchapparchitecture/definition/application-program-interface-API [8] https://www.talend.com/resources/what-is-an-api/ [9] https://www.mulesoft.com/api/what-is-an-api [10] https://www.altexsoft.com/blog/what-is-api-definition-types-specifications-documentation/
2024
- (Wikipedia, 2024) ⇒ https://en.wikipedia.org/wiki/API Retrieved:2024-6-20.
- An () is a way for two or more computer programs or components to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an . A computer system that meets this standard is said to or an API. The term API may refer either to the specification or to the implementation. Whereas a system's user interface dictates how its end-users interact with the system in question, its API dictates how to write code that takes advantage of that system's capabilities. In contrast to a user interface, which connects a computer to a person, an application programming interface connects computers or pieces of software to each other. It is not intended to be used directly by a person (the end user) other than a computer programmer who is incorporating it into the software. An API is often made up of different parts which act as tools or services that are available to the programmer. A program or a programmer that uses one of these parts is said to that portion of the API. The calls that make up the API are also known as subroutines, methods, requests, or endpoints. An API specification these calls, meaning that it explains how to use or implement them. One purpose of APIs is to hide the internal details of how a system works, exposing only those parts that a programmer will find useful, and keeping them consistent even if the internal details change later. An API may be custom-built for a particular pair of systems, or it may be a shared standard allowing interoperability among many systems. There are APIs for programming languages, software libraries, computer operating systems, and computer hardware. APIs originated in the 1940s, though the term did not emerge until the 1960s and 1970s. Contemporary usage of the term API often refers to web APIs,[1] which allow communication between computers that are joined by the internet. Recent developments in APIs have led to the rise in popularity of microservices, which are loosely coupled services accessed through public APIs. APIs should be versioned. There are two common versioning strategies:
- Additive change strategy: new features are added without modifying existing ones. Any update must be backward compatible. This strategy is suitable for small projects with low rate of change.
- Explicit version strategy: this strategy allows making any changes including breaking changes. This strategy is suitable for complex applications and complex changes.
- An () is a way for two or more computer programs or components to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an . A computer system that meets this standard is said to or an API. The term API may refer either to the specification or to the implementation. Whereas a system's user interface dictates how its end-users interact with the system in question, its API dictates how to write code that takes advantage of that system's capabilities. In contrast to a user interface, which connects a computer to a person, an application programming interface connects computers or pieces of software to each other. It is not intended to be used directly by a person (the end user) other than a computer programmer who is incorporating it into the software. An API is often made up of different parts which act as tools or services that are available to the programmer. A program or a programmer that uses one of these parts is said to that portion of the API. The calls that make up the API are also known as subroutines, methods, requests, or endpoints. An API specification these calls, meaning that it explains how to use or implement them. One purpose of APIs is to hide the internal details of how a system works, exposing only those parts that a programmer will find useful, and keeping them consistent even if the internal details change later. An API may be custom-built for a particular pair of systems, or it may be a shared standard allowing interoperability among many systems. There are APIs for programming languages, software libraries, computer operating systems, and computer hardware. APIs originated in the 1940s, though the term did not emerge until the 1960s and 1970s. Contemporary usage of the term API often refers to web APIs,[1] which allow communication between computers that are joined by the internet. Recent developments in APIs have led to the rise in popularity of microservices, which are loosely coupled services accessed through public APIs. APIs should be versioned. There are two common versioning strategies:
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedLane2019
2016
- (Wikipedia, 2016) ⇒ http://wikipedia.org/wiki/Application_programming_interface Retrieved:2016-4-29.
- In computer programming, an application programming interface (API) is a set of routines, protocols, and tools for building software and applications.
An API expresses a software component in terms of its operations, inputs, outputs, and underlying types, defining functionalities that are independent of their respective implementations, which allows definitions and implementations to vary without compromising the interface. A good API makes it easier to develop a program by providing all the building blocks, which are then put together by the programmer. ...
- In computer programming, an application programming interface (API) is a set of routines, protocols, and tools for building software and applications.