WordPress REST API

WordPress REST API – What It Is And How To Use It

The basic function of REST API is that it allows developers to easily de-couple the front-end from the package of the WordPress section. This results in the ability to create high quality mobile apps, which have proper customized themes. Using such apps offers an individual the chance to work without the fear of causing damage.

The chances are that you have heard reference made to the new REST API if you are a developer who has spent any time in the WordPress community over the past few years. This article is aimed at developers with a solid understanding of PHP and WordPress.

Getting Started With the WP REST API

You’ll need the REST API Plugin to get started and the latest version of WordPress. You’ll also need some knowledge of the WordPress HTTP API to make calls. Our REST API allows you to view, create or edit content on any WordPress.com site, as well as any self-hosted site connected via Jetpack. This includes not only blog posts and pages but also comments, tags, categories, media, site stats, notifications, sharing settings, user profiles, and many other WordPress.com features.

Some requests do not need to be genuine, but any action that would require a user to be logged in requires an verification coupon. To make authenticated requests, you’ll need to set up an account on WordPress.com if you don’t have one already. Make sure you have the REST API plugin installed on the live site and create an empty widget plugin on your local site. Here’s the boilerplate code I used to get started:

/**
* Plugin Name: REST API Test Widget
* Plugin URI: http://danielpataki.com
* Description: pulling posts through the REST API
*/
class My_Author_List_Widget extends WP_Widget {
public function __construct() {
$widget_details = array(
‘classname’ => ‘rest-api-test-widget’,
‘description’ => ‘A REST API test widget that pulls posts from a different website’
);
parent::__construct( ‘rest-api-test-widget’, ‘REST API Test Widget’, $widget_details );
}
public function form( $instance ) {
$title = ( !empty( $instance[‘title’] ) ) ? $instance[‘title’] : ”;
?>
<p>
<label for=”<?php echo $this->get_field_name( ‘title’ ); ?>”>Title: </label>
<input class=”widefat” id=”<?php echo $this->get_field_id( ‘title’ ); ?>” name=”<?php echo $this->get_field_name( ‘title’ ); ?>” type=”text” value=”<?php echo esc_attr( $title ); ?>” />
</p>
<?php
}
public function widget( $args, $instance ) {
echo $args[‘before_widget’];
if( !empty( $instance[‘title’] ) ) {
echo $args[‘before_title’] . apply_filters( ‘widget_title’, $instance[‘title’], $instance, $this->id_base ) . $args[‘after_title’];
}
// Main Widget Code Here
echo $args[‘after_widget’];
}
}
add_action( ‘widgets_init’, function(){
register_widget( ‘My_Author_List_Widget’ );

});

This code is limited within a rest-api-test-widget folder in the plugins directory, in a file named rest-api-test-widget.php. It contains the plugin header, which is used when listing the plugin in the admin. We’ll also be using the WordPress HTTP API to make requests and read responses from the WordPress API.

The fundamental rules of a REST API:

There are so many ways to make an API. The name API applies only to a particular type, one that has been developed following specific rules. REST presents a set of guidelines developers can use when building APIs to ensure that the APIs function effectively.

To understand how REST APIs work therefore, you need to know what rules they function under. There are five basic elements that make an API ‘RESTful’. Keep in your mind that the API belongs to the platform server, and the client is the site, application, or software connecting to that platform:

  1. Client-server architecture: The API should be built so that the client and the server remain separate from each other. Through that they can continue to develop on their own, and can be used separately.
  1. Statelessness: REST APIs must follow a ‘stateless’ protocol. In other words, they can’t amass any information about the client on the server. The client’s request should include all the necessary data open, and the response should provide everything the client needs, which will make each interaction a ‘one and done’ deal, and reduces both memory requirements and the potential for errors.
  1. Cacheability: This refers to the temporary storage of specific data, so it can be retrieved and sent faster. RESTful APIs make use of cacheable data whenever possible, to improve speed and efficiency. In addition, the API needs to let the client know if each piece of data can and should be cached.
  1. Layered system: Well-designed REST APIs are built using layers, each one with its own selected functionality. These layers interact, but remain separate. This makes the API easier to modify and update over time, and also improves security.
  1. Uniform interface. All parts of a REST API function via the same interface, and communicate using the same languages. This interface should be designed specifically for the API and able to evolve on its own. It should not be dependent on the server or client to function.

Any API that follows these principles can be considered RESTful. There is also a sixth constraint, referred to as ‘code on demand’. When followed, this technique lets the API instruct the server to transmit code to a client, in order to extend its functionality. However, this constraint is optional, and not adopted by all REST APIs.

The WordPress REST API

At this point, you may wonder how all of this affects you. APIs are outstanding tools, but the question arises, are they applicable to your day-to-day work? If you’re a WordPress user, the answer is clearly “yes”.

For a while, it was worked on as an independent plugin, which developers could contribute to over time and was available for anyone to experiment with.

In fact, there were two separate versions of the REST API plugin. Elements of the API were added into the core platform as early as update 4.4. This was followed by it becoming fully integrated as of WordPress 4.7. This means that today, WordPress has its own fully-functional REST API.

Did you know why the platform makes this move? According to the project site itself, it’s because WordPress is moving towards becoming a “fully-fledged application framework”. In other words, the REST API enables the platform to work together with just about any site and web application. Also, it can communicate and exchange data regardless of what languages an external program uses.

This opens up numerous possibilities for developers. It also makes WordPress as a platform more elastic and general than ever.

By understanding the REST API, WordPress developers can choose the most efficient way to execute each task, without being limited to specific technologies or platforms such as PHP or the WordPress back end. Used effectively, the REST API makes third party integrations much easier.It even opens up new opportunities, such as to create your own WordPress-based mobile apps, or discover new and unique ways to communicate with WordPress.

It’s also important to note that you may hear this feature sometimes referred to as the WordPress JSON REST API. The ‘JSON’ part, which stands for JavaScript Object Notation, describes the format this API uses to exchange data. That format is based on JavaScript, and is a trendy way of developing APIs due to how well it interfaces with many common programming languages. In other words, a JSON API is able to more easily facilitate communications between applications that utilise different languages.

The framework of a WordPress REST API request

You should now understand the overall purpose and direction of the WordPress REST API. As such, let’s get into a few specifics about how it works. There are some basic concepts you’ll need to understand if you want to get hands-on and start experimenting with the API yourself.

As explained above, every API processes requests and returns responses. In other words, a client asks it to perform a certain action, and the API carries out that action.  REST APIs are specifically designed to receive and respond to particular type of requests, using simple HTML methods.

To exemplify, here are the most basic and important HTML methods a client may send:

  • GET: This command retrieves a resource from the server (such as a particular piece of data).
  • POST: With this, the client adds a resource to the server.
  • PUT: You can use this to edit or update a resource that’s already on the server.
  • DELETE: As the name suggests, this removes a resource from the server.

Along with these commands, the client will send one or more lines that communicate exactly which resource is preferred and what should be done with it. For example, a request to upload a PHP file into a particular folder on a server. When you combine it with the HTTP method the entire function is referred to as an ‘endpoint’.

Most REST APIs and the clients that interact with them get a lot more complicated than this – WordPress’ version included. However, these basic elements form the basis for how the WordPress REST API works.

How to start using the WordPress REST API

You can start experimenting with the REST API right away as long as you have a WordPress site set up. You can perform various GET requests to recover data directly, simply by using your browser.

Then, you can add onto this URL to access various types of data.

You can use the same basic route to view other types of data, such as your posts or pages. You can even search for subsets of the data that meet certain criteria. For example, you could retrieve all posts that include a specific term using this URL. There’s almost no limit to what you can actually do using the WordPress REST API.

The WordPress REST API is no doubt a compound topic. Even for non-developers, however, it’s valuable to understand the basics of how this technology works, and what it makes possible. What’s more, it may even enable you to start dabbling in development yourself!

Where Do You Fit In?

Are you using the WP REST API? We’d love to hear how you are using it, or plan to use it. What do you think about the opportunities it provides? Do you see it as the way forward for the WordPress community or is it just a passing fad?

Conclusion

There’s no better time to learn about the WordPress REST API than now. Since it’s been fully merged into WordPress core, it’s going to play an important role in the platform’s future. Developers of all stripes will be using this API to connect WordPress to the broader web in ways that were previously difficult or impossible.

Posted in

richard@respondit.co.uk

Leave a Comment