What is REST API?

REST API is a way for websites and web applications to interact with a server.
It is also called RESTful.

The term consists of two abbreviations, which are deciphered as follows.
An API (Application Programming Interface) is a code that allows two applications to communicate with each other, for example, a client application communicates to its server.
REST (Representational State Transfer) is a way to create an API using the HTTP protocol.

A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services.

REST is a set of architectural constraints, not a protocol or a standard.
API developers can implement REST in a variety of ways.

When a client request is made via a RESTful API, it transfers a representation of the state of the resource to the requester or endpoint.
This information, or representation, is delivered in one of several formats via HTTP: JSON (Javascript Object Notation), HTML, image or plain text.
JSON is the most generally popular data-interchange format to use because, despite its name, it’s language-agnostic, as well as readable by both humans and machines.

So, in REST API, instead of web page links, we have endpoints that return parseable data, so it can be used in any other application written in any other language.
It means that we can implement REST API in our application and serve data as JSON to all client applications: a website written in React, iOS, Android applications, desktop applications, or any other web applications.

Is any API REST API?

No, API is a generic term that means «Application Programming Interface.»
An API represents a set of rules and functions that allow two different applications to communicate with each other.
Interfaces like these facilitate application integration, enabling developers to create powerful digital solutions.
The API acts as an intermediary between applications by allowing them to send requests and responses and transfer data between each other.
For example, registration in the application through the user’s existing Twitter account occurs through the Twitter API, which the developers have integrated into the application.
REST API is a specific API called REST that describes the protocol for interacting with a web service.
Services in the REST API communicate using the HTTP protocol.

The Architectural constraints for REST are Client-server architecture, statelessness, cacheability, layered system, and uniform interface.

A web API that obeys the above REST constraints is informally described as RESTful or a REST API.

API REST de WordPress

WordPress REST API is a common data and programming interface that allows you to read and write information into WordPress through different applications.

Developers are able to perform almost all data manipulation and data reading functions that are possible in PHP using the new API.
What does this mean?
With REST API, one can access the data in the WordPress database through API, without the need for templates or webpages containing said data.
For example, one gets the list of posts by an author in textual format, without the webpage containing a header, footer, and other style elements.

With the REST API, one can also manipulate the data in the WordPress database through the API programmatically, without the need for manual input of the data through user interfaces.

Ya hay muchos sitios que lo hacen.
Algunos de ellos utilizan API personalizadas, mientras que otros utilizan la nueva API REST de WordPress.

También hay muchas otras aplicaciones: Para gestionar el contenido de WordPress, no es necesario pasar por el área de administración de WordPress.
Con la ayuda de la API REST, puedes crear, editar y eliminar contenido de cualquier forma.

Utilizando la API, puedes crear fácilmente paneles de administración personalizados, incluidas aplicaciones móviles.
Esto permite a los desarrolladores diseñar un proceso de control cómodo para diferentes aplicaciones.

¿Qué son los puntos finales?

Un punto final es una llamada a la ruta mediante un método HTTP independiente.
Los puntos finales realizan una tarea específica, aceptan parámetros y devuelven datos al cliente.
La interacción con la API REST de WordPress se realiza a través de clases de endpoints/puntos de acceso/endpoints ubicados en el directorio «/wp-includes/rest-api/endpoints».
Hay tres componentes de punto final importantes: rutas, esquema y controladores.

Por ejemplo, con la URL `http://example.com/wp-json/wp/v2/posts/123`:

La «ruta» es wp/v2/posts/123

Esta ruta tiene 3 puntos finales:GET – activa un método get_item, devolviendo los datos de la entrada al cliente.

PUT – activa un método update_item, tomando los datos a actualizar, y devolviendo los datos actualizados del post.

DELETE – activa un método delete_item, devolviendo al cliente los datos de la entrada ahora eliminada.

Ampliar la API

Ampliar la API consiste en añadir tus propios puntos finales y modificar las respuestas predeterminadas Por ejemplo, al añadir un tipo de entrada personalizado llamado productos, añade las rutas API correspondientes para ellos.
El front-end de WordPress proporciona un conjunto predeterminado de asignaciones de URL, de ahí que la API REST de WordPress, a simple vista, sea un conjunto de rutas predeterminadas.

Pero en realidad es una herramienta para crear puntos finales y rutas personalizados.
Las herramientas utilizadas para crear los mapeos de URL predeterminados están disponibles para que puedas crear tus propios mapeos y consultas (por ejemplo, la API de Reescrituras).

Cada ruta puede tener cualquier número de puntos finales, y puedes definir los métodos HTTP permitidos para cada punto final, una función de devolución de llamada para responder a la solicitud, y una devolución de llamada de permisos para crear permisos personalizados.
Además, puedes definir los campos permitidos en la solicitud y para cada campo especificar un valor por defecto, una llamada de retorno de sanitización, una llamada de retorno de validación y si el campo es o no obligatorio.