What Is An API? And Other Acronyms: REST, SOAP, XML, JSON, WSDL
When you utilize a browser, your browser makes requests from the client’s server, and the server sends back data that your browser assembles and displays a web page with. But what if you just wanted your server or web page to speak to another server? This would require you to program to an API.
What Does API stand for?
API is an acronym for Application Programming Interface (API). An API is a set of routines, protocols, and tools for building web-enabled and mobile-based applications. The API specifies how you can authenticate (optional), request and receive data from the API server.
What is an API?
An API is essentially a set of rules and specifications that allows different software applications to communicate and interact with each other. It acts as a messenger or intermediary, enabling one application to request data or services from another, and then receive a response back.
Let’s provide a simple example. If you use a link shortener to distribute a long URL easier better, you might use a service like Bit.ly. You type the long URL in, submit the URL, and Bit.ly responds with the short URL.
What if you wanted to use Bit.ly within the scope of a platform that you’re using? Perhaps you’ve built a QR code maker online but want long URLs shortened first. In this case, you could program your site to send the request to the Bit.ly API and then capture the response to build your QR code.
The process is automated with an API where no human intervention is required. This is the opportunity that APIs provide every organization. APIs assist systems in synchronizing data, processing requests, and automating processes typically done manually.
If a platform has a robust API, it means that you can both integrate and automate, saving manual time, improving your platforms’ real-time capabilities, and ensuring improved accuracy—avoiding issues with manual data entry.
A Video Of How APIs Work
If you’re a platform developer, APIs also offer the opportunity to separate your user interface from you computation and database queries. Why is that important? As you develop your user interface, you can utilize the same APIs you publish for other third parties. You can rewrite your user interface without worrying about breaking the back-end integration.
How To Find Available APIs
Are you looking for an API for a specific product or service? Here are some resources that list APIs that you can utilize personally and commercially:
How To Test APIs
An API is simply an HTTP request, much like a browser. The differentiation is that an API often requires some authentication method to make the request. If no authentication is needed, you can even request by pasting the request URL in a browser. Here’s an example of a request to an open-source weather API.
Using OSX, you can utilize the cURL command in a terminal window. Upon executing the command, cURL
will make a GET request to the provided API URL, and the response containing the weather forecast data will be displayed in the Terminal.
curl "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t_weather=true&hourly=temperature_2m,relativehumidity_2m,windspeed_10m"
On Windows, you can install curl
and add it to the system’s PATH for the command to work. Alternatively, you can use third-party curl
executables for Windows, such as cURL for Windows or curl for Windows by Winamp and run the curl command similarly.
Here are some additional languages and how you can make an API request:
- Python: The
requests
library is commonly used for making HTTP requests in Python. Here’s an example:
import requests
response = requests.get('https://example.com')
print(response.text)
- JavaScript (Node.js): The
axios
library is a widely-used HTTP client for Node.js. Here’s an example:
const axios = require('axios');
axios.get('https://example.com')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
- JQuery: Use the
$.ajax
or$.get
functions to make HTTP requests. Here’s an example of making a GET request using$.ajax
in jQuery:
$.ajax({
url: 'https://example.com',
method: 'GET',
success: function(response) {
console.log(response);
},
error: function(error) {
console.error(error);
}
});
- Ruby: Ruby’s standard library includes the
net/http
module for making HTTP requests. Here’s an example:
require 'net/http'
require 'uri'
uri = URI.parse('https://example.com')
response = Net::HTTP.get_response(uri)
puts response.body
- Java: Java provides various libraries and frameworks for making HTTP requests, such as
HttpURLConnection
(in the standard library), Apache HttpClient, or OkHttp. Here’s an example usingHttpURLConnection
:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) throws IOException {
URL url = new URL("https://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
System.out.println(response.toString());
}
}
- C# or ASP.NET: Use the
HttpClient
class to make HTTP requests. Here’s an example of how to make a GET request usingHttpClient
in C#:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync("https://example.com");
response.EnsureSuccessStatusCode(); // Ensure a successful response
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
Remember to add the necessary using
statements and handle exceptions appropriately when working with HttpClient
in your ASP.NET or C# application.
- WordPress: The WordPress API has its own functions
wp_remote_get
orwp_remote_post
:
$response = wp_remote_get('https://example.com');
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
echo "Request failed: $error_message";
} else {
$body = wp_remote_retrieve_body($response);
$data = json_decode($body);
// Process the retrieved data
var_dump($data);
}
These examples demonstrate how to perform a basic GET request, but these libraries typically support different HTTP methods (GET, POST, etc.) and provide options for setting headers, sending request payloads, and handling responses in a more advanced manner.
Remember to install any required dependencies or libraries for your programming language before running the code examples.
Talend has a great Chrome Application for interacting with APIs and seeing their responses if you’d like to test APIs without writing a line of code.
Add Talend’s API Tester to Chrome
What does the Acronym SDK stand for?
SDK is an acronym for Software Developer Kit.
When a company publishes its API, there’s typically accompanying documentation showing how the API authenticates, how it can be queried, and the appropriate responses. To help developers get a head start, companies often publish a Software Developer Kit (SDK) to easily include a class or the necessary functions into projects the developer writes.
What does the Acronym XML stand for?
XML is an acronym for eXtensible Markup Language. XML is a markup language used to encode data in a format that is both human-readable and machine-readable.
Here’s an example of how XML appears:
<?xml version="1.0"?>
<product id="1">
<title>Product A</title>
<description>The first product</description>
<price>
<amount>5.00</amount>
<per>each</per>
</price>
</book>
What does the Acronym JSON stand for?
JSON is an acronym for JavaScript Object Notation. JSON is a format for structuring data that is sent back and forth via an API. JSON is an alternative to XML. REST APIs more commonly respond with JSON – an open standard format that uses human-readable text to transmit data objects consisting of attribute–value pairs.
Here’s an example of the data above using JSON:
{
"id": 1,
"title": "Product A",
"description": "The first product",
"price": {
"amount": "5.00",
"per": "each"
}
}
What does the Acronym REST stand for?
REST is an acronym for the Representational State Transfer architectural style for distributed hypermedia systems.
Whew… deep breath! You can read the entire dissertation here, called the Architectural Styles and the Design of Network-based Software Architectures submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Information and Computer Science by Roy Thomas Fielding.
Thanks, Dr. Fielding!
What does the Acronym SOAP stand for?
SOAP is an acronym for Simple Object Access protocol
I’m not a programmer, but in my opinion, developers who love SOAP do so because they can easily develop code in a standard programming interface that reads the Web Service Definition Language (WSDL) file. They don’t need to parse the response, it’s already accomplished using the WSDL. SOAP requires a programmatic envelope, which defines the message structure and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing procedure calls and responses.