Crea una Api con Strapi y Node JS en minutos

Luciano Goldman
orbit-software
3 min readJun 8, 2020

--

Strapi:

Strapi es Headless CMS opensource para los amantes del Front-End. Es más que un Framework de Node.js y más que un CMS Headless, ahorra tiempo de desarrollo de API a través de un hermoso panel de administración que cualquiera puede usar.

RESTful o GraphQL:

Se puede consumir la API desde cualquier cliente (React, Vue, Angular), aplicaciones móviles o incluso IoT, usando REST o GraphQL.

100% JavaScript

Un idioma para gobernarlos a todos. Completamente desarrollado con JavaScript

Extensible por diseño

Sistema de complementos incluido. Dentro podrás instalar complementos como un sistema de autenticación, administración de contenido, complementos personalizados y más, en segundos.

Autenticaciones y permisos

Asegure sus endpoints permitiendo o no que los usuarios accedan a su API por rol.

Creando un sistema de trueque en segundos:

Truequi es un sistema de trueque donde un usuario podrá seleccionar categorías y subir sus productos.

Ahora bien, cuando un usuario ingresa a la plataforma, ve un producto que le interesa y quiere conseguirlo, podrá subir una oferta de algún producto para intercambiar, con una imagen y un texto descriptivo.

Un usuario podrá ver las ofertas que tiene su producto, aceptarlas o rechazarlas, mientras que un oferente podrá ver todas ofertas que realizó y cancelar las que desee.

Para eso, lo primero que haremos será crear el modelo de entidades:

Creando proyecto:

Creamos el proyecto con Strapi con el siguiente comando:

Luego entramos a:
http://localhost:1337/admin

donde tendremos que crear un usuario administrador para acceder al sistema.

Dentro, en la pestaña Content-Types-Builder empezaremos a crear nuestro modelo:

  • a
  • *
  1. Click en Create new collection type
  2. En donde dice Display name colocamos “Oferta” y tocamos continuar
  3. Creamos los atributos:
  • Seleccionamos tipo Rich Text
  • En el campo Name ponemos “Descripción”
  • Add Another field
  • Seleccionamos Tipo Enumerado
  • En el campo Name ponemos “Estado”
  • En el campo Value, ponemos los valores que queres para dicho enumerado, por ejemplo “Activo”, “Cancelado”, “Concretado”
  • Add Another field
  • Seleccionamos tipo Fecha y ponemos el Name “Fecha”
  • Agregamos un nuevo field de tipo Relación y agregamos una relación con Producto donde una Oferta pertenece a muchos productos.
  • Repetimos el paso anterior con Usuarios
  • Por último agregamos una relación con OfertaFile donde una Oferta tiene muchos OfertaFiles.
  • Tocamos Finish.

Estos son los pasos para crear una entidad de ejemplo, solo alcanza con repetir el proceso para todas las entidades del diagrama para terminar.

Con cada Collection Type vamos a tener creados automáticamente los endpoints que se pueden ver en la siguiente imagen:

Roles y Permisos:

Dentro de la solapa Roles y Permisos podremos crear los roles que queramos y asignarle los permisos que deseemos.

Por ejemplo, si queremos que el endpoint GET /ofertas este público para todos, entramos al rol Public y bajo el titulo Oferta tildamos la opción find.

En caso que queramos que el método POST /ofertas esté habilitado solo para usuarios logueados, entramos al rol Authenticated y bajo el titulo oferta tildamos create. Notar que para este caso deberíamos pasar el token entre los parámetros.

Conclusión:

Strapi.io es una herramienta super poderosa donde podemos crear una api robusta en minutos.

Cuenta con plugins para agregar funcionalidades como envío de email y login con redes sociales. Lamentablemente, por el momento, no hay una gran variedad de estos pero estamos seguros que Strapi tendrá un crecimiento exponencial en el uso cotidiano de los developers.

--

--