Postable – RESTful API Objetivo
Desarrollar una RESTful API para una red social que permita a los usuarios registrarse, autenticarse, crear publicaciones y gestionar likes, diferenciando usuarios autenticados y no autenticados.
Tecnologías
TypeScript
Express.js
PostgreSQL
pg
JWT
bcrypt
dotenv
Arquitectura
Arquitectura MVC (Model – View – Controller).
src/ ├── controllers/ ├── models/ ├── routes/ ├── middlewares/ ├── config/ └── server.ts
Base de Datos
Tablas:
users
posts
likes
Relaciones:
Un usuario tiene muchos posts
Un post tiene muchos likes
Un usuario solo puede dar un like por post
Autenticación
JWT (JSON Web Token)
Header requerido:
Authorization: Bearer
Variables de Entorno
.env
PORT=3000 JWT_SECRET=supersecretjwt JWT_EXPIRES_IN=1d
Instalación git clone cd postable/backend npm install npm run dev
Servidor:
Endpoints Principales
Auth
POST /signup
POST /login
Posts
GET /
GET /:username
POST /posts
PATCH /posts/:id
Likes
POST /posts/:postId/like
DELETE /posts/:postId/like
Perfil
GET /me
PATCH /me
DELETE /me
Pruebas
Las pruebas se realizaron con Insomnia, validando:
Autenticación JWT
Acceso a rutas protegidas
Manejo de errores (401, 404)
Estado
API funcional, cumple los requerimientos y está lista para evaluación.
Autor: Diego Rentería Proyecto académico – Full Stack Development