Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
News

Conectando desde Delphi a un webservice de Prestashop

the future of starts demands massive productivity

Author: Emilio PM

Prestashop es una aplicación web muy extendida en Europa y que se utiliza para crear comercios electrónicos.

Dispone de una funcionalidad para conectar aplicaciones utilizando un servicio web. Existen multitud de páginas webs donde te explican como activar un servicio web en Prestashop, así pues, el primer paso es activarlo y obtener una clave para poder conectarnos.

En Delphi disponemos de varios componentes que podemos utilizar para obtener la información de nuestro servicio web, en este caso sería utilizando REST. En nuestro ejemplo veremos como hacerlo con el componente TRESTClient.

En nuestro ejemplo vamos a necesitar dos componentes en nuestro formulario:

  • TRESTClient. Utilizado para conectarnos con el servicio web.
  • TRESTRequest. Utilizado para obtener información.
  • TRESTResponse. Utilizado para almacenar el contenido obtenido.

El primer problema que nos encontramos es que el servicio web utiliza XML en vez de JSON. Es algo que debemos tener en cuenta a la hora de utilizar nuestro componente.

TRESTClient

Propiedades que debemos modificar:

  • BaseURL: Debe ser la URL base donde se encuentra el webservice de Prestashop. Normalmente se encuentra en /api y en mi caso es http://localhost/prestashop/api/
  • ContentType: Es el tipo de contenido con el cual vamos a trabajar. Al ser XML debemos indicar el valor ‘text/xml’
  • Accept: Indicamos que tipos  de contenidos vamos a aceptar. En nuestro caso: ‘application/json, text/plain, text/xml; q=0.9, text/html;q=0.8,’
  • AcceptCharset: Indicamos que tipo de Charset esperamos. En nuestro caso: ‘ISO-8859-1, *;q=0.8’

TRESTRequest

Propiedades que debemos modificar:

  • Resource: Será el recurso que vamos a utilizar de prestashop, por ejemplo, vamos a poner products?ws_key=ABCDEFGHIJKLMNOPQRSTUVWXYZ789012 para obtener los productos dados de alta en prestashop.
  • Client: Deberemos tener asignado el cliente anterior.
  • Response: Debemos tener asignado el componente Request

 

Pruebas

Pasamos a realizar las primeras pruebas poniendo un TButton y un TMemo.

En el click del ratón escribimos el siguiente código (recuerda cambiar el nombre por el que tenga tu componente):

RestRequest1.Execute;
Memo1.Text:=RESTResponse1.Content;

Ejecutamos nuestra aplicación y nos dará como resultado algo así:

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<products>
<product id="1" xlink:href="http://localhost/prestashop/api/products/1"/>
<product id="2" xlink:href="http://localhost/prestashop/api/products/2"/>
<product id="3" xlink:href="http://localhost/prestashop/api/products/3"/>
<product id="4" xlink:href="http://localhost/prestashop/api/products/4"/>
<product id="5" xlink:href="http://localhost/prestashop/api/products/5"/>
<product id="6" xlink:href="http://localhost/prestashop/api/products/6"/>
<product id="7" xlink:href="http://localhost/prestashop/api/products/7"/>
</products>
</prestashop>

 

De esta manera hemos obtenido un listado de todos los productos que tenemos en prestashop.

 

Y si quieres probarlo, te invito a que te descargues la [DownloadButton Product=’Delphi’ Caption=’Trial de Delphi’] y pruebes, es muy sencillo de realizar. 

 

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES