SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Ing. Hector Curbelo Barrios
API REST FOR THE BD2 DATABASE WITHIN THE
IBM I SYSTEMS, USING THE PHP FRAMEWORK
CODEIGNITER
INTRODUCCIÓN
Con el desarrollo de las tecnologías y su arquitectura han surgido nuevas formas para las interacciones
de las aplicaciones. Con el decurso del tiempo la separación de las aplicaciones y la gestión de Base de
Datos se han ido separando en modelos y conceptos diferentes, hoy día podemos encontrar que la
mayoría de sistemas crean APIS para el consumo de sus servicios tanto de las aplicaciones propias del
sistema, tanto como para aplicaciones externas.
Esta arquitectura sobre la cual se desarrollan muchos sistemas permiten un alto grado de
mantenimiento, escalamiento en el tiempo, seguridad, versatilidad para la interacción con aplicaciones
de terceros entro otros aspectos importantes.
Para lograr esto se unen un conjunto de tecnologías ya conocidas desde hace algún tiempo como JSON
(acrónimo de JavaScript Object Notation, es un formato de texto ligero para el intercambio de datos),
REST (Representational State Transfer) es un estilo de arquitectura software para sistemas
hipermedia distribuidos, API Key (no es más que un identificador una clave y contraseña para
autenticarte cada vez que utilizas un Servicio Web), entre otros no menos fundamentales.
FIG: Ejemplo sencillo de cómo es el flujo de interacción entre aplicaciones, API y Almacenes de Datos
DESARROLLO
1. Framework Codeigniter.
Codeigniter es un framework escrito en PHP, sencillo, potente y muy fácil de adaptar a diferentes
escenarios por muy complejos que estos sean y los sistemas IBM i son uno de estos escenarios
complejos y diferentes donde se requiere adaptabilidad y fortaleza. Más información sobre este
framework: https://www.codeigniter.com .
En lo adelante en el artículos vincularemos todos los conceptos y funcionalidades con dicho
framework.
Desde aquí se pueden descargar la versión modificada:
https://github.com/ibmcodeigniter/iCodeigniter
2. Usando HMVC.
El Modelo Vista Controlador (MVC) viene a ser una forma de trabajar que separa los datos de una
aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos, el modelo,
la vista y el controlador. Uno de los motivos del MVC es la reutilización de código.
Bueno este patrón arquitectónico todos lo conocemos y la mayoría de framework por no ser
absoluto, la incorporan como parte de su arquitectura indiferentemente del lenguaje de
programación que este se base.
HMVC (Hierarchical model-view-controller) una variación del (MVC) modelo-vista-controlador,
es una forma de modular organizadamente nuestros desarrollo agrupándolo por conceptos que
nosotros mismo definidos y que tiene sentido lógico.
Aparte del MVC también tenemos el HMVC en codeigniter, en vez de tener un sistema MVC,
podemos tener muchos, o mejor dicho, tener muchos módulos. Cada módulo contiene o puede
contener lo siguiente:
Controllers
Models
Views
CLIENT
3. Integración del driver de Base de datos DB2.
Driver de Base de Datos DB2 para Codeigniter usa todas las funcionalidades de manejo de datos
de este framework.
En el directorio application/config/database.php configurar los datos de configuración de base
de datos como, por ejemplo:
Esto permite un mejor manejo de base de datos, sobre todo más más fácil de entender y escribiendo
menos código haciendo que el proceso de desarrollo sea más ágil.
Hay que aclarar que no todas las funcionalidades del Active Record de Codeigniter están disponibles
para usarse en db2, pues la librería PHP desarrollada para este gestor de base de datos aun es un poco
pobre.
A continuación un ejemplo de lo que podemos hacer usando este driver de Base de Datos (db2):
Es importante apuntar que en cada ejecución de consulta es recomendable cerrar la conexión a la base
de Datos, puede generar problemas dejar mucho hilos de conexiones abiertos. El solo hecho de escribir
$this->db genera una nueva conexión a la base de Datos.
4. Librería API REST para Codeigniter.
Con esta librería puedes crear servicios REST usando Codeigniter con excelentes funcionalidades,
niveles de seguridad y fácil de implementar.
Formatos de Salida:
Verbo HTTP:
GET
Usado para recuperar información sobre un recurso existente. Esto es usado por navegadores cuando
ingresas una URL y presionas ir, o cuando haces clic en un enlace, así que es perfecto para recuperar
información en uno de tus recursos REST (como user).
POST
Usado para actualizar un recurso existente con información. Los navegadores usan esto para enviar la
mayoría de formularios en Internet, aunque algunos usan GET también enviando el formulario con una
query string que contenga los datos de los campos.
PUT
Menos comúnmente usado y no soportado por la mayoría de navegadores, PUT es usado para crear
un nuevo recurso.
DELETE
Tampoco es usado por muchos navegadores, este verbo HTTP es obviamente usado para borrar un
recurso.
Puedes descargar la librería desde este likn: https://github.com/chriskacerguis/codeigniter-
restserver
Además en este link puedes ver la forma de configurarlo dentro de Codeigniter y ejemplos tanto de
creación como de consumo.
5. Consumo del API REST.
Para el consumo puedes hacerlo desde otro proyecto hecho en Codeigniter usando la librería CURL,
incluso puedes hacerlo desde otras plataformas, dispositivos y sistemas.
Aquí te muestro como consumirlo usando Codeigniter:
1. Crear carpeta dentro del directorio application con el nombre api dentro de esta crear una
clase abstracta que permita devolver las claves de acceso al nuestros servidor API REST.
Luego al crear el modelo desde donde se va a consumir nuestro API REST y extendemos de esta
clase abstracta:
Como podemos ver usamos la librearía CURl para hacer el consumo de nuestro API, con el cual
podemos enviarle datos y recibir datos.
6. Ventajas del uso de API REST en Sistemas i Serie IBM.
Tener un API proporciona muchas ventajas, lo primero es que la separación en capas de tus
aplicaciones permitiendo que estas sean más cómodas de mantener y extender, lo que significa una
gran plataforma para el crecimiento de tus aplicaciones. En otro sentido la posibilidad de que puedas
interactuar con los datos desde cualquier dispositivo, además la interacción con diferentes aplicaciones
ya sean tuyas o de terceros.
Imagina poder ejecutar desde una aplicación móvil funciones RPG dentro de tus sistemas i Series,
mostrar datos estadísticas, interactuar con tus clientes de una manera más común y simple para ellos.
Si Alguien quiere probar el API REST con gusto le envío un ambiente completamente configurado, solo
escribirme a:
hcurbelo@gmail.com
Ing. Hector Curbelo Barrios

Más contenido relacionado

La actualidad más candente

Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Alex Espinoza
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Semana 1 Automatización de infraestructura y despliegue Sprint Boot
Semana 1   Automatización de infraestructura y despliegue Sprint BootSemana 1   Automatización de infraestructura y despliegue Sprint Boot
Semana 1 Automatización de infraestructura y despliegue Sprint BootRichard Eliseo Mendoza Gafaro
 
Mule investigation (jeiner gonzalez.b)
Mule investigation (jeiner gonzalez.b)Mule investigation (jeiner gonzalez.b)
Mule investigation (jeiner gonzalez.b)Jeiner Gonzalez Blanco
 
Asp.net conceptos
Asp.net conceptosAsp.net conceptos
Asp.net conceptosXstremsX
 
Colegio particular san juan oracle y php
Colegio particular san juan oracle y phpColegio particular san juan oracle y php
Colegio particular san juan oracle y phpMAGGEYPEREZ
 
Flex mobile
Flex mobileFlex mobile
Flex mobilealdo87_
 
Visual Basic 6.0 I.U.P Santiago Mariño
Visual Basic 6.0 I.U.P Santiago MariñoVisual Basic 6.0 I.U.P Santiago Mariño
Visual Basic 6.0 I.U.P Santiago Mariñoangemadrid
 
Andre.paola9 blos blospot blogger
Andre.paola9 blos blospot bloggerAndre.paola9 blos blospot blogger
Andre.paola9 blos blospot bloggerpaolatublog
 

La actualidad más candente (17)

Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.
 
PHP
PHPPHP
PHP
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Semana 1 Automatización de infraestructura y despliegue Sprint Boot
Semana 1   Automatización de infraestructura y despliegue Sprint BootSemana 1   Automatización de infraestructura y despliegue Sprint Boot
Semana 1 Automatización de infraestructura y despliegue Sprint Boot
 
Mule investigation (jeiner gonzalez.b)
Mule investigation (jeiner gonzalez.b)Mule investigation (jeiner gonzalez.b)
Mule investigation (jeiner gonzalez.b)
 
Asp.net conceptos
Asp.net conceptosAsp.net conceptos
Asp.net conceptos
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Colegio particular san juan oracle y php
Colegio particular san juan oracle y phpColegio particular san juan oracle y php
Colegio particular san juan oracle y php
 
Flex mobile
Flex mobileFlex mobile
Flex mobile
 
Fundamentos de visual basic
Fundamentos de visual basicFundamentos de visual basic
Fundamentos de visual basic
 
Clase 1 Introducción al Desarrollo Web
Clase 1 Introducción al Desarrollo WebClase 1 Introducción al Desarrollo Web
Clase 1 Introducción al Desarrollo Web
 
Adobe flex
Adobe flexAdobe flex
Adobe flex
 
Visual Basic 6.0 I.U.P Santiago Mariño
Visual Basic 6.0 I.U.P Santiago MariñoVisual Basic 6.0 I.U.P Santiago Mariño
Visual Basic 6.0 I.U.P Santiago Mariño
 
tp informatica
tp informaticatp informatica
tp informatica
 
Clase flex
Clase flexClase flex
Clase flex
 
Andre.paola9 blos blospot blogger
Andre.paola9 blos blospot bloggerAndre.paola9 blos blospot blogger
Andre.paola9 blos blospot blogger
 
Componentes
ComponentesComponentes
Componentes
 

Similar a API BD2 CodeIgniter 40

Sistema.inventario@hotmail.com
Sistema.inventario@hotmail.comSistema.inventario@hotmail.com
Sistema.inventario@hotmail.comsimeon
 
Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1fanyto
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Ianpierr Miranda
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebPierina G. Abad
 
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en ObjetosTecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en ObjetosTensor
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx22040086
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)VirgCSan
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webimei_02
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptxRonaldoJos15
 

Similar a API BD2 CodeIgniter 40 (20)

5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 
Programacion
ProgramacionProgramacion
Programacion
 
Sistema.inventario@hotmail.com
Sistema.inventario@hotmail.comSistema.inventario@hotmail.com
Sistema.inventario@hotmail.com
 
Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1Act1 tecnologiaweb uni1
Act1 tecnologiaweb uni1
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 
GraphQL Reactivo
GraphQL ReactivoGraphQL Reactivo
GraphQL Reactivo
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_Diseñoweb
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en ObjetosTecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
 
API como SaaS
API como SaaSAPI como SaaS
API como SaaS
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-web
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Practica 8
Practica 8Practica 8
Practica 8
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptx
 

API BD2 CodeIgniter 40

  • 1. Ing. Hector Curbelo Barrios API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWORK CODEIGNITER
  • 2. INTRODUCCIÓN Con el desarrollo de las tecnologías y su arquitectura han surgido nuevas formas para las interacciones de las aplicaciones. Con el decurso del tiempo la separación de las aplicaciones y la gestión de Base de Datos se han ido separando en modelos y conceptos diferentes, hoy día podemos encontrar que la mayoría de sistemas crean APIS para el consumo de sus servicios tanto de las aplicaciones propias del sistema, tanto como para aplicaciones externas. Esta arquitectura sobre la cual se desarrollan muchos sistemas permiten un alto grado de mantenimiento, escalamiento en el tiempo, seguridad, versatilidad para la interacción con aplicaciones de terceros entro otros aspectos importantes. Para lograr esto se unen un conjunto de tecnologías ya conocidas desde hace algún tiempo como JSON (acrónimo de JavaScript Object Notation, es un formato de texto ligero para el intercambio de datos), REST (Representational State Transfer) es un estilo de arquitectura software para sistemas hipermedia distribuidos, API Key (no es más que un identificador una clave y contraseña para autenticarte cada vez que utilizas un Servicio Web), entre otros no menos fundamentales. FIG: Ejemplo sencillo de cómo es el flujo de interacción entre aplicaciones, API y Almacenes de Datos
  • 3. DESARROLLO 1. Framework Codeigniter. Codeigniter es un framework escrito en PHP, sencillo, potente y muy fácil de adaptar a diferentes escenarios por muy complejos que estos sean y los sistemas IBM i son uno de estos escenarios complejos y diferentes donde se requiere adaptabilidad y fortaleza. Más información sobre este framework: https://www.codeigniter.com . En lo adelante en el artículos vincularemos todos los conceptos y funcionalidades con dicho framework. Desde aquí se pueden descargar la versión modificada: https://github.com/ibmcodeigniter/iCodeigniter 2. Usando HMVC. El Modelo Vista Controlador (MVC) viene a ser una forma de trabajar que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos, el modelo, la vista y el controlador. Uno de los motivos del MVC es la reutilización de código. Bueno este patrón arquitectónico todos lo conocemos y la mayoría de framework por no ser absoluto, la incorporan como parte de su arquitectura indiferentemente del lenguaje de programación que este se base. HMVC (Hierarchical model-view-controller) una variación del (MVC) modelo-vista-controlador, es una forma de modular organizadamente nuestros desarrollo agrupándolo por conceptos que nosotros mismo definidos y que tiene sentido lógico. Aparte del MVC también tenemos el HMVC en codeigniter, en vez de tener un sistema MVC, podemos tener muchos, o mejor dicho, tener muchos módulos. Cada módulo contiene o puede contener lo siguiente: Controllers Models Views CLIENT
  • 4. 3. Integración del driver de Base de datos DB2. Driver de Base de Datos DB2 para Codeigniter usa todas las funcionalidades de manejo de datos de este framework. En el directorio application/config/database.php configurar los datos de configuración de base de datos como, por ejemplo: Esto permite un mejor manejo de base de datos, sobre todo más más fácil de entender y escribiendo menos código haciendo que el proceso de desarrollo sea más ágil. Hay que aclarar que no todas las funcionalidades del Active Record de Codeigniter están disponibles para usarse en db2, pues la librería PHP desarrollada para este gestor de base de datos aun es un poco pobre. A continuación un ejemplo de lo que podemos hacer usando este driver de Base de Datos (db2):
  • 5. Es importante apuntar que en cada ejecución de consulta es recomendable cerrar la conexión a la base de Datos, puede generar problemas dejar mucho hilos de conexiones abiertos. El solo hecho de escribir $this->db genera una nueva conexión a la base de Datos. 4. Librería API REST para Codeigniter. Con esta librería puedes crear servicios REST usando Codeigniter con excelentes funcionalidades, niveles de seguridad y fácil de implementar. Formatos de Salida:
  • 6. Verbo HTTP: GET Usado para recuperar información sobre un recurso existente. Esto es usado por navegadores cuando ingresas una URL y presionas ir, o cuando haces clic en un enlace, así que es perfecto para recuperar información en uno de tus recursos REST (como user). POST Usado para actualizar un recurso existente con información. Los navegadores usan esto para enviar la mayoría de formularios en Internet, aunque algunos usan GET también enviando el formulario con una query string que contenga los datos de los campos. PUT Menos comúnmente usado y no soportado por la mayoría de navegadores, PUT es usado para crear un nuevo recurso. DELETE Tampoco es usado por muchos navegadores, este verbo HTTP es obviamente usado para borrar un recurso. Puedes descargar la librería desde este likn: https://github.com/chriskacerguis/codeigniter- restserver Además en este link puedes ver la forma de configurarlo dentro de Codeigniter y ejemplos tanto de creación como de consumo. 5. Consumo del API REST. Para el consumo puedes hacerlo desde otro proyecto hecho en Codeigniter usando la librería CURL, incluso puedes hacerlo desde otras plataformas, dispositivos y sistemas. Aquí te muestro como consumirlo usando Codeigniter: 1. Crear carpeta dentro del directorio application con el nombre api dentro de esta crear una clase abstracta que permita devolver las claves de acceso al nuestros servidor API REST.
  • 7. Luego al crear el modelo desde donde se va a consumir nuestro API REST y extendemos de esta clase abstracta:
  • 8. Como podemos ver usamos la librearía CURl para hacer el consumo de nuestro API, con el cual podemos enviarle datos y recibir datos. 6. Ventajas del uso de API REST en Sistemas i Serie IBM. Tener un API proporciona muchas ventajas, lo primero es que la separación en capas de tus aplicaciones permitiendo que estas sean más cómodas de mantener y extender, lo que significa una gran plataforma para el crecimiento de tus aplicaciones. En otro sentido la posibilidad de que puedas interactuar con los datos desde cualquier dispositivo, además la interacción con diferentes aplicaciones ya sean tuyas o de terceros. Imagina poder ejecutar desde una aplicación móvil funciones RPG dentro de tus sistemas i Series, mostrar datos estadísticas, interactuar con tus clientes de una manera más común y simple para ellos.
  • 9. Si Alguien quiere probar el API REST con gusto le envío un ambiente completamente configurado, solo escribirme a: hcurbelo@gmail.com Ing. Hector Curbelo Barrios