Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. OpenCart
Code

Crear una API personalizada en OpenCart

by
Difficulty:IntermediateLength:ShortLanguages:

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Tendrá que crear API personalizadas para requisitos únicos en el desarrollo de su proyecto en algún momento, y eso es lo que cubriremos a lo largo de este tutorial. En nuestro módulo personalizado de la API, buscaremos la lista de todos los productos disponibles en la tienda, y será una salida codificada JSON según lo requieran los estándares REST en OpenCart.

Supongo que está familiarizado con el proceso básico de desarrollo de módulos en OpenCart. Aquí está un artículo agradable que proporciona la comprensión comprensiva en el tema apenas en caso de que usted quisiera saltarlo. Otro punto importante: Estoy usando la última versión de OpenCart, que es 2.1.0.2 como de escribir esto, y usted debe hacer eso también para asegurar la compatibilidad de las API principales.

Sin perder tiempo, me sumergiré en las cosas prácticas, y eso es lo que trata la siguiente sección.

Un vistazo al archivo de configuracion

Echemos un vistazo a la lista de archivos necesarios para la configuración deseada.

  • catalog/controller/api/custom.php: Es un archivo de controlador, y la mayor parte de nuestra lógica de aplicación reside en este archivo.
  • catalog/language/en-gb/api/custom.php: Es un archivo de idioma que contiene variables de lenguaje.
  • Common.php: Este archivo contiene el código común para fines de reutilización.
  • Login.php: Es un archivo que muestra cómo iniciar sesión en la tienda usando la REST API.
  • products.php: Es un archivo que demuestra cómo buscar productos usando nuestro módulo de API personalizado.

Por lo tanto, eso es todo lo que se necesita para configurar nuestro módulo de API personalizado y probarlo con la extension PHP CURL.

Empezaremos con el archivo del controlador, comienze y cree un archivo catalog/controller/api/custom.php con el siguiente contenido.

Probablemente, debería ser bastante familiar cosas si conoce la estructura de archivos del módulos en OpenCart. Sin embargo, vamos a discutir los fragmentos importantes del método products.

En primer lugar, tenemos que comprobar la autenticidad de la solicitud, y se comprueba por la existencia de la variable api_id en la sesión activa. En el caso de una solicitud válida y autenticada, seguiremos adelante y buscaremos todos los productos utilizando el método getProducts del modelo principal Product. Por supuesto, dará un mensaje de error de permiso denegado en el caso de inicio de sesión no válido.

A continuación, hay un control de seguridad genérico para proteger contra los ataques CSRF. Se logra comprobando la existencia de la variable HTTP_ORIGIN y agregando los encabezados apropiados si existen.

Por último, hemos utilizado la función json_encode para codificar la array $products y el resultado se pasa como un argumento del método setOutput.

A continuación, seguiremos adelante y crearemos un archivo de idioma para nuestro módulo en catalog/language/en-gb/api/custom.php con los siguientes contenidos.

Por lo tanto, eso es lo que se refiere a la instalación de archivos relacionados con OpenCart. A partir de la siguiente sección, crearemos los archivos que nos ayudarán a probar nuestra API personalizada mediante la extension PHP CURL.

Cómo funciona

Antes de seguir adelante y probar el módulo API personalizado, debe asegurarse de que ha creado credenciales de usuario API desde el back-end de OpenCart.

Si todavía no lo ha hecho, es bastante fácil. Dirígete hacia el back-end, navega a Sistema > Usuarios > API y agregue un nuevo usuario de API. Al hacerlo, es importante tener en cuenta que también debe agregar una dirección IP desde la que se supone que debe realizar llamadas API.

Sigue adelante y crea un archivo common.php y pega el siguiente contenido en ese archivo.

Como puede ver, contiene sólo una función, do_curl_request, que hará una llamada CURL a la URL que pasa con el argumento $url. El segundo argumento es un array de parámetros en caso de que necesite POST los datos.

Las otras cosas importantes a tener en cuenta son las configuraciones CURLOPT_COOKIEJAR y CURLOPT_COOKIEFILE. Estos establecen el archivo en el que se almacenarán y leerán las cookies. Como tendremos que hacer llamadas autenticadas, es una necesidad! Por supuesto, desea cambiar la ruta /tmp/apicookie.txt de acuerdo con la configuración del sistema. ¡Asegúrese de que tiene los permisos apropiados para escribir el servidor web también!

Finalmente, la función devuelve la respuesta de la petición CURL.

Obviamente, lo primero que debes hacer es iniciar la sesión, y necesitarás usar el método de inicio de sesión. Echemos un vistazo a un ejemplo. Sigue adelante y crea un archivo login.php con el siguiente contenido.

Primero, hemos incluido el archivo common.php creado en la sección anterior. A continuación, la variable $url define la URL de inicio de sesión de API del almacén OpenCart. A continuación, la array $fields contiene las credenciales de usuario de la API creadas anteriormente.

Por último, llamamos al método do_curl_request para iniciar sesión. Es importante que vea una variable de token en el objeto $json. Anote el valor de esa variable, ya que necesitaremos pasarla mientras realiza las subsecuentes llamadas a la API.

A continuación, creemos un archivo products.php con el siguiente contenido.

El fragmento importante a tener en cuenta en el ejemplo anterior es la variable querystring de ruta. Se establece en el valor de api/custom/products, que por convención llama al método products definido en el archivo del controlador custom.php creado al principio de este tutorial. Además, hemos pasado la variable token junto con su valor para asegurarnos de que tenemos acceso a la API.

De todos modos, lo que nos interesa es la salida codificada JSON adecuada en la variable $data. Y eso es lo que deberías ver cuando ejecutes el archivo products.php Deberia funcionar sin cambios, si usted ha creado las credenciales apropiadas del usuario y fijó los archivos según lo explicado.

Esto es sólo rascar la superficie de lo que es capaz la API REST en OpenCart. En nuestro caso, fue un ejemplo bastante simple pero eficaz para demostrar el tema. Dicho esto, usted podría ampliarlo e implementar soluciones a medida de acuerdo a sus necesidades.

Eso es todo para el artículo de hoy. No dude en hacer preguntas y dejar sus sugerencias, ¡ya que son valiosos!

Conclusion

Hoy, hemos discutido cómo crear una API personalizada en OpenCart creando un módulo personalizado. En el proceso, pasamos por el flujo de trabajo completo para lograr la funcionalidad mencionada anteriormente.

Usted podría llegar a mí a través de la sección de alimentación a continuación, y también pasar un poco de tiempo en Twitter si usted prefiere ponerse en contacto conmigo ¡allí!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.