SlideShare una empresa de Scribd logo
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

PPTX
Unidad educativa josé maría vélaz
PPTX
Katherine y wendy
PPTX
framework.net -Jennifer Suarez
DOCX
Programacion
PPTX
Visual basic
PDF
31-Android Generalidades Sobre Servicios Webs con MySQL
PPTX
Nombred
PDF
SimpleSAMLphp
Unidad educativa josé maría vélaz
Katherine y wendy
framework.net -Jennifer Suarez
Programacion
Visual basic
31-Android Generalidades Sobre Servicios Webs con MySQL
Nombred
SimpleSAMLphp

La actualidad más candente (17)

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

Similar a API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWORK CODEIGNITER (20)

PDF
Taller Codeigniter
PDF
CodeIgniter
PPTX
Germán Peraferrer: Cormo Framework
PPTX
Cormo Framework
PDF
Zend Framework - MVC - 2008
PDF
[El comercio]php zend framework (speech)
PPTX
Framework kahana
ODP
Desarrollando un API con REST
PDF
Presentacion YII
PDF
Gestionar mis proyectos con ayuda de CodeIgniter
PDF
Desymfony - Servicios
PDF
Dreamweaver
PPT
Kumbia PHP Framework - Inicios, Presente y Futuro
PDF
Code igniter guia_usuario_2.1.0
PDF
Tutorial Web Services en PHP, REST, SOAP
PPTX
Codeigniter101
PDF
Arquitectura web
PDF
Manual basico
PDF
Servicios web
Taller Codeigniter
CodeIgniter
Germán Peraferrer: Cormo Framework
Cormo Framework
Zend Framework - MVC - 2008
[El comercio]php zend framework (speech)
Framework kahana
Desarrollando un API con REST
Presentacion YII
Gestionar mis proyectos con ayuda de CodeIgniter
Desymfony - Servicios
Dreamweaver
Kumbia PHP Framework - Inicios, Presente y Futuro
Code igniter guia_usuario_2.1.0
Tutorial Web Services en PHP, REST, SOAP
Codeigniter101
Arquitectura web
Manual basico
Servicios web
Publicidad

Último (11)

PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PPTX
Fundamentos de Python - Curso de Python dia 1
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
sistemas de informacion.................
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
PPTX
Implementación equipo monitor12.08.25.pptx
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Fundamentos de Python - Curso de Python dia 1
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
AutoCAD Herramientas para el futuro, Juan Fandiño
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
Conceptos basicos de Base de Datos y sus propiedades
sistemas de informacion.................
Derechos_de_Autor_y_Creative_Commons.pptx
Su punto de partida en la IA: Microsoft 365 Copilot Chat
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
Implementación equipo monitor12.08.25.pptx

API REST FOR THE BD2 DATABASE WITHIN THE IBM I SYSTEMS, USING THE PHP FRAMEWORK CODEIGNITER

  • 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