Sybase SQL Anywhere - Ayuda con PHP y SQL Anywhere!!!

 
Vista:

Ayuda con PHP y SQL Anywhere!!!

Publicado por JAM (1 intervención) el 05/05/2019 18:35:26
Saludos estimada comunidad

Quisiera solicitarles su ayuda con un proyecto que tengo que realizar en SQL Anywhere, ya que me piden un reporte semanal que tiene que ser enviado a una API en PHP, y me dicen que tengo que enviar en el encabezado el usuario y contraseña y en el contenido un select de la base de datos, les comparto lo que me piden:

1) Accediendo a la API
Autenticación
La autenticación de la API se realiza en cada solicitud
realizada al servidor, siendo necesario enviar siempre en los encabezados
de la solicitud el usuario y la contraseña.
Los nombres de las variables para los encabezados se describen en la
siguiente tabla:
Tabla 1. Variables de autenticación
Código Descripción
user Nombre de la variable para el usuario asignado por CS, enviada

en los encabezados de la solicitud.

Password Nombre de la variable para la contraseña asignado por CS,

enviada en los encabezados de la solicitud.

Estos datos están almacenados en la base de datos,
debidamente encriptados.
Nota: Todas las solicitudes enviadas al servidor son realizadas con el método
POST.
Direcciones URL de acceso
La API está pensada para utilizar un enlace para envío
de información hacia las XXXX y otro enlace para recibir datos desde los
clientes.
Para recibir información desde el servidor, se utiliza el enlace siguiente:

Los parámetros se envían en los encabezados de la solicitud a través del
método POST por razones de seguridad, la respuesta enviada por el servidor
http://www.xxxxxxxx.com/api/get.php

API
DOCUMENTACIÓN
será en formato JSON, con la siguiente estructura:

Para enviar información hacia el servidor, se utiliza el enlace siguiente:

Los parámetros se envían en los encabezados de la solicitud a través del
método POST por razones de seguridad.
En este caso, la respuesta enviada por el servidor será el código de éxito o
error de la solicitud realizada. Los códigos están descritos en las tablas
siguientes:
Tabla 2. Códigos de respuesta con éxito
Código Descripción
200 Solicitud completada correctamente

Alguien tiene idea si esto se puede hacer en SQL Anywhere?, agradecere mucho sus comentarios

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Envío seguro de datos a API con autenticación desde procedimientos almacenados

Publicado por Alejandro (46 intervenciones) el 21/02/2024 19:48:57
Sí, Jam, es posible realizar la autenticación y el envío de datos a través de una API desde SQL Anywhere utilizando la funcionalidad de HTTP y procedimientos almacenados. Aquí hay una guía general de cómo podrías abordar esto:

1. Creación de procedimientos almacenados:
- Crea procedimientos almacenados que utilicen las funciones HTTP incorporadas en SQL Anywhere. Puedes utilizar la función `httpclient` para enviar solicitudes HTTP.

2. Autenticación:
- Asegúrate de tener los datos de autenticación (usuario y contraseña) almacenados en tu base de datos de SQL Anywhere de manera segura. Puedes usar funciones de encriptación disponibles en SQL Anywhere para almacenar estos datos de manera segura.

- Usa el procedimiento almacenado para enviar una solicitud POST a la URL de autenticación de la API con las credenciales proporcionadas en los encabezados.

- Asegúrate de manejar las respuestas del servidor API, verificando los códigos de estado HTTP y manejando cualquier error de autenticación.

3. Envío de datos:
- Crea una consulta SQL que recupere los datos que deseas enviar a la API.

- Utiliza el procedimiento almacenado para enviar una solicitud POST a la URL de la API para enviar los datos. Asegúrate de incluir los encabezados requeridos para la autenticación.

- Maneja las respuestas del servidor API según sea necesario, verificando los códigos de estado y manejando errores.

Aquí hay un ejemplo simple de cómo podrías estructurar el procedimiento almacenado para enviar datos a través de una solicitud HTTP POST:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE PROCEDURE EnviarDatosALaAPI()
BEGIN
    DECLARE @url VARCHAR(255) = 'http://www.xxxxxxxx.com/api/send.php';
    DECLARE @usuario VARCHAR(50) = 'tu_usuario';
    DECLARE @contrasena VARCHAR(50) = 'tu_contrasena';
 
    DECLARE @headers LONG VARCHAR;
    SET @headers = 'Content-Type: application/json; charset=UTF-8' || CHAR(13) || CHAR(10);
    SET @headers = @headers || 'user: ' || @usuario || CHAR(13) || CHAR(10);
    SET @headers = @headers || 'Password: ' || @contrasena || CHAR(13) || CHAR(10);
 
    DECLARE @datos JSON;
    -- Construir la estructura JSON con los datos que deseas enviar
 
    DECLARE @respuesta LONG VARCHAR;
 
    EXECUTE IMMEDIATE 'CALL sa_httpclient(''POST'', ''' || @url || ''', NULL, ''' || @headers || ''', ''' || @datos || ''', NULL, @respuesta)';
 
    -- Procesar la respuesta del servidor API según sea necesario
END;

Asegúrate de ajustar este ejemplo según los requisitos específicos de tu API y de tu aplicación. Además, ten en cuenta que debes gestionar adecuadamente la seguridad y encriptación de los datos de autenticación almacenados en tu base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar