What are APIs? : An application programming interface (API) is a set of tools, definitions and protocols to build and integrating Software of the application. It allows your product or service to communicate with other products and services without having to know how they are implemented. APIs can simplify application development, which can save developers time and money from companies. When you design new tools and products, or manage existing ones, APIs give you flexibility; simplify design, administration and use; and provide opportunities for innovation.Because APIs simplify the way developers integrate new application components into an existing architecture, they help businesses and IT teams collaborate. Business needs often change rapidly in response to constantly changing digital markets, where new competitors can change an entire industry with a new application.
To stay competitive, it is important to support the rapid development and deployment of innovative services. Native application in the cloud Development is an identifiable way to increase the speed of development, and is based on the connection of a microservices Application architecture through APIs.APIs are a simplified way to connect your own infrastructure through the development of native cloud applications, but they also allow you to share your data with clients and other external users. Public APIs represent a unique business value because they can simplify and extend the way you connect with your partners, as well as potentially monetize your data (the Google Maps API is a popular example).
For example, imagine a book distribution company. The book distributor. might Provide your customers with an application that allows library employees to check the availability of books with the distributor. This application can be expensive to develop, is limited by the platform and requires long development times and continuous maintenance.
Alternatively, the book distributor could provide an API to verify stock availability. There are several benefits of this approach:
- Allowing customers to access the data through an API helps them add information about their inventory in one place.
- The book distributor can make changes to its internal systems without affecting the customers, provided that the behavior of the API do not change.
- With a publicly available API, developers working for the book distributor, book sellers or third parties could develop an application to help customers find the books they are looking for. This could result in higher sales or other business opportunities.
In summary, the APIs allow you Open access to your resources while maintaining security and control.How you open access and who depends on you. The security of the API has to do with good administration of the API.The connection to the APIs and the creation of applications that consume the data or the functionality exposed by the APIs can be done with a distributed integration platform that connects everything, including legacy systems and the Internet of things ( IoT ).
There are three approaches to API launch policies.
The API is only for internal use. This gives companies the most control over their API.
The API is shared with specific business partners. This can provide additional revenue streams without compromising quality.
The API is available to everyone. This allows third parties to develop applications that interact with their API and can be a source of innovation.
Innovating with APIs
Exposing your APIs to partners or the public can:
- Create new revenue channels or expand existing ones.
- Expand the reach of your brand.
- Facilitate open innovation or improve efficiency through external development and collaboration.
It sounds great, right? But how can APIs do all that?
Let’s go back to the example of the book distribution company.
Let’s suppose that one of the partners of the company develops an application that helps people find books on the shelves of bookstores. This enhanced experience attracts more buyers to the bookstore, the distributor’s customer, and extends an existing revenue channel.
Perhaps a third party uses a public API to develop an application that allows people to buy books directly from the distributor, rather than from a store. This opens a new revenue channel for the book distributor.
Sharing API, with select partners or with the whole world, can have positive effects. Each association extends its brand recognition beyond the marketing efforts of its company. Opening technology for all, as with a public API, encourages developers to create an ecosystem of applications around their API. More people who use their technology means that more people are likely to do business with you.
Making technology public can lead to novel and unexpected results. These results sometimes interrupt entire industries. For our book distribution company, new companies (for example, a book loan service) could fundamentally change the way they do business. Public and partner APIs help you use the creative efforts of a larger community than your team of internal developers. New ideas can come from anywhere, and companies must be aware of the changes in their market and be ready to act accordingly. The APIs can help.
An extraordinarily short history of the APIs
The APIs emerged in the early days of computing, much earlier than the personal computer. At that time, an API was usually used as a library for operating systems. The API was almost always local to the systems in which it operated, although it sometimes passed messages between mainframes. After almost 30 years, the APIs came out of their local environments. In the early 2000s, they were becoming an important technology for remote data integration.
Remote APIs are designed to interact through a communications network. By “remote”, we mean that the resources manipulated by the API are located somewhere outside the computer that makes the request. Because the most commonly used communications network is the internet, most APIs are designed according to web standards. Not all remote APIs are web APIs, but it is fair to assume that web APIs are remote.
Web APIs often use HTTP for request messages and provide a definition of the structure of response messages. These response messages usually take the form of an XML or JSON file. Both XML and JSON are preferred formats because they present data in a way that is easy to manipulate for other applications.
What has been done to improve the APIs?
As the APIs have become the now ubiquitous web API, several efforts have been made to make their design a bit easier and their implementation more useful.
A little soap, a lot of rest.
As the web APIs have been extended, a protocol specification was developed to help standardize the exchange of information: Simple Object Access Protocol, better known as SOAP. APIs designed with SOAP use XML for their message format and receive requests through HTTP or SMTP. SOAP makes it easier for applications that run in different environments or that are written in different languages to share information.
Another specification is the representational state transfer (REST). Web APIs that adhere to REST architecture constraints are called API RESTful.REST differs from SOAP in a fundamental way: SOAP is a protocol, while REST is an architectural style. This means that there is no official standard for Web API RESTful.As defined in Roy Fielding’s dissertation. “Architectural styles and the design of network-based software architectures” The APIs are RESTful provided they comply with the 6 guide restrictions of a system RESTful :
- Client-server architecture: The REST architecture consists of clients, servers and resources, and handles requests through HTTP.
- Apatridia: No client content is stored on the server between requests. The information on the status of the session, however, is maintained with the client.
- Cacheability : Caching can eliminate the need for some client-server interactions.
- Layer system: Client-server interactions can be mediated by additional layers. These layers could offer additional features such as load balancing, shared caches or security.
- Code on demand (optional): Servers can extend the functionality of a client by transferring executable code.
- Uniform interface: This restriction is fundamental for the design of API REST and includes 4 facets:
- Identification of resources in the applications: The resources are identified in the requests and are independent of the representations returned to the client.
- Manipulation of resources through representations: Clients receive files that represent resources. These representations must have enough information to allow their modification or elimination.
- Self-descriptive messages: Each message returned to a client contains enough information to describe how the client should process the information.
- Hypermedia as the engine of the application state: After accessing a resource, the REST client must be able to discover through hyperlinks all other actions that are currently available.
These restrictions may seem like a lot, but they are much simpler than a prescribed protocol. For this reason, API REST is they are becoming more frequent than SOAP.
Architecture SOA vs. microservices.
The 2 architecture approaches that most remote APIs use are Service Oriented Architecture (SOA) and microservices architecture. SOA, the oldest of the 2 approaches, it began as an improvement to monolithic applications. While a single monolithic application does it all, some applications can be supplied by different applications that are flexibly coupled through an integration pattern, such as a business service bus (ESB).
While SOA is, in most cases, simpler than a monolithic architecture, it carries the risk of cascading changes throughout the environment if the interactions of the components are not clearly understood. This additional complexity reintroduces some of the problems that SOA tried to remedy.
The architectures of microservices They are similar to the SOA patterns in the use of specialized services and little coupled. But they go even further in breaking traditional architectures. The services within the Architecture of microservices use a common messaging framework, such as API RESTful.They use APIs REST to communicate with each other without difficult data conversion transactions or additional integration layers. The use of API of REST allows, and even encourages, faster delivery of new features and updates. Each service is discreet. A service can be replaced, improved or eliminated without affecting any other service in the architecture. This lightweight architecture helps optimize distributed or cloud resources and supports dynamic scalability for individual services.