API Rest con PHP
Uso de API Rest con PHP
- Codeigniter:
https://codeigniter.com/
- Codeigniter-restserver:
https://github.com/chriskacerguis/codeigniter-restserver
2. Descomprimir Codeigniter
3. Copiar los siguientes archivos de codeigniter-restserver a las siguientes carpetas de
codeigniter (ambas carpetas tiene la misma estructura de archivos).
application / libraries / Format.php
application / libraries / REST_Controller.php
application / config / rest.php
application / language / * copiar todos los archivos de lenguajes
4. Ir a la carpeta raíz de codeigniter y crear el archivo .htaccess con el siguiente código
1
2
3
4
5
|
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule^(.*)$index.php/$1 [L] |
5. Crear las siguientes tablas en la BDD MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
create database servidor_rest;
Use servidor_rest;
CREATE TABLE `tbl_user` (
`user_id` int(11) NOT NULL,
`user_name` varchar(40) NOT NULL,
`user_password` varchar(40) NOT NULL,
`user_type` varchar(15) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `keys` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`key` varchar(40) NOT NULL,
`level` int(2) NOT NULL,
`ignore_limits` TINYINT(1) NOT NULL DEFAULT '0',
`is_private_key` TINYINT(1) NOT NULL DEFAULT '0',
`ip_addresses` TEXT NULL DEFAULT NULL,
`date_created` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `logs` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`uri` VARCHAR(255) NOT NULL,
`method` VARCHAR(6) NOT NULL,
`params` TEXT DEFAULT NULL,
`api_key` VARCHAR(40) NOT NULL,
`ip_address` VARCHAR(45) NOT NULL,
`time` INT(11) NOT NULL,
`rtime` FLOAT DEFAULT NULL,
`authorized` VARCHAR(1) NOT NULL,
`response_code` smallint(3) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
Tabla tbl_user:
Es una tabla de prueba para realizar las operaciones GET, POST, PUT, DELETE.
Tabla keys:
Tabla en el cual se almacenará las claves para el acceso a los servicios. Estas claves pueden ser legibles o codificadas empleando un software generador de texto cifrado. (Un cliente debe especificar esta clave – ver más adelante)
Tabla logs:
Para almacenar las peticiones a los servicios REST.
6. Ir a application/config/database.php para configurar la conexión a la base de datos.
1
2
3
4
5
|
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'servidor_rest';
|
$autoload['libraries'] = array('database');
8. Ir a application/config/rest.php, para configurar la seguridad de la aplicación (en este
caso de tipo BASIC – el nombre de usuario y contraseña se encuentra en el mismo archivo)
$config['rest_enable_keys'] = TRUE; $config['rest_logs_table'] = 'logs'; $config['rest_auth'] = 'basic';//no es obligatorio $config['auth_source'] = ''; $config['rest_valid_logins'] = ['admin' => '1234'];
9. Ir a application/controller y crear el archive Api.php
10. Ir a application/model y crear el archivo User_model.php
Y mediante un cliente REST probamos el resultado (Por ejemplo: Postman)
Especificar la URL y en Authorization seleccionar TYPE: Basic Auth (Únicamente si se configuró la aplicación para este tipo de autenticación que no es obligatorio, pero es recomendable por seguridad) y colocar las credenciales del paso 8.
En la pestaña HEADERS, en X-API-KEY, colocar el código legible o encriptado que se especificó en la tabla keys del paso 5. (Es independiente del tipo de Authorization especificado en el paso anterior)
Para el método POST incluir los parámetros necesarios
Se mostrara los datos que están en la base de datos en formato JSON así
Esto ha sido una pequeña explicación sobre el el API REST





Comentarios
Publicar un comentario