1.- Configurar el http.conf de apache y cambiar para la carpeta raíz:
“AllowOverride none“ por “AllowOverride all”
3.- Descomentar la siguiente línea
4.- Reiniciar el servicio de apache
5.- Redireccionar todo al index.php, para tener soporte de url amigables:
Crear archivo .htaccess en la carpeta donde pondremos el WS (para ambiente de desarrollo Scriptcase lo ponemos en la carpeta de la aplicación, pero scriptcase elimina el archivo cada vez que se generan fuentes). Incluiremos una función que permita crear el archivo .htaccess en la carpeta de la aplicación cuando ésta es cargada sin incluir ningún parámetro o método.
6.- Utilidades de Rest para reusar desde una librería interna de SC:
Estructura json sugerida para la respuesta del servicio:
Status: retornar el estado de la petición realizada.
success : cuando se completa la petición y se retorna la respuesta esperada.
warning : puede ser por el uso de un método no permitido
error : Error en base de datos o cualquier exención en el proceso.
Data : Este llevará los datos de respuesta en un array, siempre debe de incluirse en la respuesta, en caso de no retornar valor se le asigna el valor null.
Code: Este representa el código de respuesta del servidor.
Los códigos más frecuentes son:
200 OK : Cuando todo sale bien.
201 Created (Creado) : Cuando se hace un post y todo sale bien.
304 Not Modified (No modificado)
400 Bad Request (Error de consulta) : Si la petición no se puede ejecutar por problema en los parámetros recibidos.
401 Unauthorized (No autorizado)
403 Forbidden (Prohibido)
404 Not Found (No encontrado) :Cuando el ID contenido en la consulta (GET, PUT o PATCH) no existe.
405 Method not Allowed : Si el verbo en la petición no es permitido en el servicio.
422 (Unprocessable Entity (Entidad no procesable)
500 Internal Server Error (Error Interno de Servidor)
Message: se retorna un string con un mensaje, para informar o aclarar las condiciones del servicio.
Para garantizar consistencia en las respuestas de todas las funciones que retorne la estructura json. Es necesario invocar la función con los 4 parámetros correspondientes a las propiedades que fueron descrita anteriormente. Crearemos una serie de funciones orientada a estandarizar cada una de las funcionalidades que necesitamos para servir una API Rest, para eso crearemos una librería interna (ws_metodos.php) de SC con los siguientes segmentos de códigos.
Convertir el formato de codificación de caracteres de matrices (array) a utf-8. Evita que la función json_encode retorne una cadena vacía al encontrarse con caracteres especiales en cualquier elemento de la matriz:
Métodos o Verbos mas usados en los servicios web:
GET : Obtener datos (SELECT).
POST : Para crear o insertar uno o varios registros (INSERT)
PUT : Actualización (update) completo de registro(s).
PATCH : Actualización (update) parcial parcial de registro(s).
DELETE : Eliminar un registros (por lo general es preferible solo marcarlo como borrado o lo que podríamos llamar un borrado lógico, es decir tener un campo bandera para utilizarlo como marca de borrado).
Función para consulta SQL y retorna una respuesta estándar (GET ):
Función para crear o insertar registros y retornar una respuesta estándar (POST ):
Función para modificar o actualizar registros y retornar una respuesta estándar (PUT ):
Función para borrar o eliminar registros y retornar una respuesta estándar (DELETE ):
Es necesario colocar cada una de estas funciones en una librería interna, para que estos códigos puedan ser reusados por todas las aplicaciones de nuestro proyecto.
Las siguientes dos funciones debemos incluirla también en nuestra librería interna, puesto que la utilizaremos en el script de entrada de nuestro servicio:
Ya tenemos en una librería interna todas las funciones necesarias para que nuestra API Rest pueda funcionar, ahora crearemos una aplicación blank que servirá como punto de entrada para las peticiones
7.- Aplicación blank como punto de entrada de nuestra API:
Creamos una aplicación blank en este caso el nombre sería ws_cliente.
Debemos vincular la librería interna ws_metodos.php con la nueva aplicación blank.
Agregamos el siguiente código en el onExecute:
En el nodo de programación crearemos los siguientes métodos PHP
create($pdata)
delete($idcliente)
read()
readone($idcliente)
update($update_fields, $update_where)
Este sería todo el código necesario. Para que se pueda crear el archivo .htaccess es necesario ejecutar la aplicación blank, por lo menos una sola vez desde el navegador sin pasar parámetros, para que se active el servicio REST, luego a partir de ese momento puede ser consumido el servicio REST. Para consumir el servicio REST desde Scriptcase existen videos muy buenos en youtube, pero este servicio puede ser consumido desde cualquier otro lenguaje de programación o plataforma. La tabla utilizada (tblcliente) es una tabla con un estructura simple de dos campos con el objetivo de hacer mas corto el ejemplo, para el correcto funcionamiento de este ejemplo es necesario crear dicha tabla, revise la función ws_insert en la librería interna para que la adecue a MySQL o SQL Server o cualquier otro motor de base de datos.