Cómo construir una API primero o CMS desacoplado desde cero

Cuando se trata de educación, creo firmemente en reinventar la rueda. ¿Mi proyecto más reciente? Una aplicación de viaje donde las personas pueden encontrar lugares para quedarse que alquilan de sus casas, apartamentos, etc.… tan únicos, ¿verdad? Lo llamaré BNBAir, o algo así …

De todos modos, no tengo mucha experiencia escribiendo CMS (plataformas, por otro lado, ahí es donde se encuentran mis especialidades), pero diría, mira proyectos como estos Explorando diferentes soluciones de CMS creadas en Node.js

Comprenda lo que están creando para los usuarios, de modo que usted también pueda comprender mejor todas las opciones que debe proporcionar.

Lo que debes hacer (y cómo escribí mi primer generador, en realidad), es crear una aplicación. Realmente no hace nada, excepto existir. Puede registrarse con un nombre de usuario, correo electrónico y contraseña. puedes iniciar sesión y registrarte. Se conecta a una base de datos. Hay una página para iniciar sesión y registrarse.

Hay un diseño básico (diseño muy consistente de una página a otra por cierto, usando algo como bootstrap o fundación). Todos sus diseños deben venir en css, scss y menos.

Luego hay una página donde el usuario puede escribir en un formulario para enviar algo que se guarda en la base de datos y presenta una lista de todos los envíos a la página. Permitir al usuario editar información personal.

Luego ve al backend. ¿Un usuario se está registrando? Asegúrese de que el nombre de usuario y el correo electrónico sean válidos y siga todas sus reglas, y que nadie más los esté usando. Luego verifique que la contraseña sea válida y cumpla con los requisitos mínimos. Cree un sistema por el cual los usuarios se clasifiquen en roles de administrador o usuario.

Luego, para el envío del formulario anterior, validar todo. Asegúrese de que los usuarios no puedan meterse con la base de datos enviando algo extraño.

Escriba verificar todo. Si algo tiene que ser una cadena, asegúrese de que solo se pueda enviar una cadena. Verifique todo, asegúrese de que todo esté limpio.

Error verifica todo. Si existe una línea de código, puede tener un error, así que asegúrese de atrapar todos los lugares posibles donde pueda haber un error, y maneje adecuadamente el error de tal manera que el usuario sea notificado de por qué ocurrió.

Incluye trago o gruñido. En realidad, incluye ambos. Los usuarios pueden tener una preferencia. Escriba sus tareas en cada una de ellas para agrupar los js, minificarlo, uglificarlo. Luego compile su scss o menos en css.

Luego, cuando todo esté listo, y tenga una aplicación completamente funcional llena de funcionalidad básica y verificación de errores. Tiene scss, less, css y gulp and gruñido, por lo que no importa lo que el usuario quiera usar, puede usarlo.

Construye tu generador. Enhorabuena, hasta este momento, no ha creado más que plantillas. Cuando construyen su sitio, esto es lo que verá el usuario. No importa qué opciones elijan, ellos ven lo mismo. Todo lo que es diferente es si pueden usar gruñido o trago, y qué tipo de hojas de estilo verán.

Entonces, ¿qué pasa en su generador? Indicaciones del usuario. ¿Cómo nombrarás tu base de datos, cómo llamarás a tu aplicación? ¿usarás css, scss o menos? ¿Trago o gruñido? npm o npm y bower? Etc. etc. etc. Y en función de esas respuestas, editará la información dentro de sus plantillas y agrupará los archivos de plantilla que utilizará.

Luego ejecutas la compilación. Reúne toda esa información de las indicaciones del usuario, y copia los archivos editados de plantillas en un nuevo directorio con el nombre que elija el usuario, y con un script postinstall ejecuta npm install y bower install.

Ahora todo lo que tienen que hacer es encender un servidor para su base de datos. Luego escriba gruñido o trago, y listo. Su aplicación está en funcionamiento.

Es un proceso largo pero gratificante, y ni siquiera toqué todas las opciones que debería poner a disposición de los usuarios aquí (usando HTML, Jade, ejs, etc.) … Hapi, Koa, Express …….. basado en sesión o token basada en la autenticación ……). Aprenderá mucho sobre el nodo / FS y cómo poner en cola correctamente los procesos en una aplicación de nodo, mientras trabaja en habilidades en JavaScript / HTML / CSS.

Y cuando sienta que está listo, agrúpelo como un módulo NPM, deje que se instale globalmente, y de esa manera los usuarios pueden ejecutarlo desde cualquier lugar para crear una plantilla para sus nuevas aplicaciones.

Tendría que elegir una base de datos y una tecnología del lado del servidor para usar. Esa elección dependerá principalmente de lo que le gustaría aprender. Puede usar ASP.NET con MS SQL Server, Node.js con MongoDB, PHP con MySQL, o cualquier combinación de los anteriores o Ruby, Python, etc.

Hará bien en aprender y comprender los dos principales sabores de las API, REST y SOAP, y cuáles son sus fortalezas y debilidades.

Por último, elija y dure una tecnología front-end. AngularJS y ReactJS son populares en este momento.

De cualquier manera, si está haciendo esto para fines profesionales, verifique qué tecnologías están de moda en su área y asegúrese de elegirlas.

Cualquiera sea el idioma que elija, haga que pueda encontrar paquetes que puedan:

  • Generar una IU de administración para operaciones CRUD
  • Generar automáticamente API-REST

Por ejemplo, Laravel tiene cosas para hacer eso.