Crear una API RESTful con PHP y MySQL. En este articulo crearemos una API RESTfull simple usando el lenguaje PHP y como base de datos MySQL respetando los parámetros en su proceso.
REST (Representational State Transfer) es una arquitectura de sistema que define el conjunto de métodos para acceder a los servicios web. Sin embargo, el objetivo principal de REST API es crear un sistema que pueda ser utilizado por diferentes aplicaciones.
La API de REST se crea con operaciones CRUD (Create, Read, Update, Delete).
API REST se consume realizando una solicitud HTTP (GET, POST, PUT o DELETE) desde el lado del cliente.
Esta API se implementa de forma que devuelva la respuesta en JSON o XML o en cualquier otro formato.
Pasos para crear un API RESTful
Crear la tabla de base de datos MySQL
La conexión con la base de datos
Creación de elementos
Lectura de elementos
La actualización de elementos
Eliminar elementos existentes.
Implementar las URLs amigables
Crear una API RESTful con PHP y MySQL
Entonces, si está trabajando en una aplicación para trabajar en diferentes dispositivos como escritorio, dispositivos móviles, etc., puede crear una API REST con las operaciones requeridas para acceder a diferentes aplicaciones, como la aplicación web y la aplicación móvil.
En este tutorial aprenderá cómo crear una API RESTful simple con PHP y MySQL. Implementaremos la API REST con operaciones CRUD para crear elementos, leer elementos, actualizar elementos y eliminar elementos.
Cubriremos este tutorial paso a paso con un ejemplo en vivo para crear una API RESTFul para realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) y consumir API REST con solicitud HTTP (GET, POST, PUT o DELETE) para jugar con los datos de los elementos.
Así que comencemos la codificación. Tendremos la siguiente estructura de archivos para nuestro ejemplo de API REST.
Primer paso: Crear tabla de base de datos MySQL
Crearemos la tablas con sus respectivas columnas.
CREATE TABLE `items` (
`id` int(11) NOT NULL,
`name` varchar(256) NOT NULL,
`description` text NOT NULL,
`price` int(255) NOT NULL,
`category_id` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
También insertaremos unos registros para realizar operaciones.
En la configuración del directorio, crearemos una clase Database.php para establecer la conexión a la base de datos MySQL.
<?php
class Database{
private $host = 'localhost';
private $user = 'root';
private $password = "";
private $database = "php_demo";
public function getConnection(){
$conn = new mysqli($this->host, $this->user, $this->password, $this->database);
if($conn->connect_error){
die("Error failed to connect to MySQL: " . $conn->connect_error);
} else {
return $conn;
}
}
}
?>
Tercer paso: Implementar la creación de elementos
En los elementos de directorio, crearemos un archivo crear.php e implementar elementos crear funcionalidad para insertar un nuevo registro en la base de datos. La API aceptará valores HTTP POST para crear un registro. Crearemos el objeto de la clase Items.php y llamaremos al método create() para guardar el registro.
creacion de registros api restful php
En los elementos de directorio, crearemos la lectura de archivos PHP.php e implementaremos la funcionalidad de lectura de elementos. Manejaremos la funcionalidad de lectura de elementos con el método HTTP GET para obtener todos los elementos o elementos específicos.
Crearemos el objeto de la clase Items.php y el método de llamada read() y devolveremos los datos de respuesta en formato JSON.
API RESTful con PHP
En la clase Items.php, implementaremos el método read() para leer elementos de la base de datos.
<?php
function read(){
if($this->id) {
$stmt = $this->conn->prepare("SELECT * FROM ".$this->itemsTable." WHERE id = ?");
$stmt->bind_param("i", $this->id);
} else {
$stmt = $this->conn->prepare("SELECT * FROM ".$this->itemsTable);
}
$stmt->execute();
$result = $stmt->get_result();
return $result;
}
?>
Probaremos el ejemplo de URL de lectura de nuestra API REST utilizando la siguiente URL con la aplicación POSTMAN.
https://demo.baulphp.com/rest-api/items/read
La URL de lectura anterior devolverá todo el registro de elementos en formato de datos JSON. Necesitamos pasar una identificación de artículo específica para obtener ese registro de elemento.
Quinto paso: Implementar la actualización de elementos
En los elementos de directorio, crearemos la actualización del archivo PHP.php e implementaremos la funcionalidad de actualización de elementos con el método HTTP PUT. Crearemos el objeto de clase Items.php y llamaremos al método update() para actualizar los detalles de los elementos.
Probaremos el ejemplo de URL de actualización desde nuestra API REST utilizando la siguiente URL con la aplicación POSTMAN.
https://demo.baulphp.com/rest-api/items/update
PONDREMOS los siguientes valores de datos JSON con el registro de actualización de id de elemento existente. Aquí estamos pasando el id de elemento 61 para actualizar el registro.
Editar registro usando api restfull
Sexto paso: Implementar la eliminación de elementos
En los elementos de directorio, crearemos una eliminación de archivos PHP.php para implementar la funcionalidad de eliminación de elementos. Crearemos el objeto de la clase Items.php y llamaremos al método delete() para eliminar elementos.
En la clase Items.php, implementaremos el método delete() para eliminar elementos.
<?php
function delete(){
$stmt = $this->conn->prepare("
DELETE FROM ".$this->itemsTable."
WHERE id = ?");
$this->id = htmlspecialchars(strip_tags($this->id));
$stmt->bind_param("i", $this->id);
if($stmt->execute()){
return true;
}
return false;
}
?>
Probaremos el ejemplo de Eliminar URL de nuestra API REST usando la siguiente URL con la aplicación POSTMAN.
https://demo.baulphp.com/rest-api/items/delete
PONDREMOS los siguientes valores de datos JSON con id de elemento para eliminar el registro de elemento. Aquí estamos pasando el id de elemento 61 para actualizar el registro.
{
"id": 61
}
Eliminar registros con api restfull
Setimo paso: Hacer que las URL de solicitud de SEO sean amigables de la API de REST
En los elementos de directorio, crearemos un archivo HTACCESS .htaccess para hacer URL amigables para SEO usando estas instrucciones.
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^read$ read.php [NC,L]
RewriteRule ^read/([0-9_-]*)$ read.php?id=$1 [NC,L]
RewriteRule ^create$ create.php [NC,L]
RewriteRule ^update$ update.php [NC,L]
RewriteRule ^delete$ delete.php [NC,L]
[wpsm_woobox id=»13234″]
Conclusión
Con esta explicación hemos implementado un simple API RESTful con PHP y MySQL que poseen la funciones de un CRUD, es decir, Crear, Leer, Actualizar, Eliminar.
Además, hemos implementado el método POST y el método GET para procesar la información. Sin embargo, para el testeo hemos usado la plataforma POSTMAN.
Por último, para obtener un resultado profesional hemos implementado las URLs amigables SEO que es muy beneficioso para el SEO. Sin embargo, lo hemos implementado en el fichero .HTACCESS.
Espero que este articulo les ayude en sus proyectos web.
Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.
No se si sea tarde mi respuesta, pero esto «ssiisi» hace referencia al tipo de datos que se van a insertar en la tabla (string, string, integer, integer, string, integer).
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Más información
a mi no me da… trate de ponerle otras variables pero no me tira nada…… y no se que tiene que ver esto
«ssiisi»
o las demas de son «i»
No se si sea tarde mi respuesta, pero esto «ssiisi» hace referencia al tipo de datos que se van a insertar en la tabla (string, string, integer, integer, string, integer).
Saludos.
$result = $stmt->get_result(); aqui tengo problemas en el read.php
$result = $stmt->get_result(); aqui tengo problemas en el read.php
Gracias Nestor