REST API Layer

Panorama

Todos los endpoints están definidos en routes/api.php (162 líneas). Se dividen en:

Formato de Respuesta Estándar

{
  "success": true,
  "data": { ... },
  "message": "Descripción"
}

Autenticación

La API usa Laravel Sanctum con tokens por dispositivo. Al hacer login o registro, se recibe un token:

curl -X POST /api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"secret"}'

# Respuesta:
# { "token": "1|abc123...", "user": { ... } }

Para endpoints protegidos:

curl -H "Authorization: Bearer 1|abc123..." /api/auth/me

Mapa Completo de Rutas

Rutas Públicas (sin autenticación)

Método Ruta Controlador Descripción
POST /api/auth/login AuthController@login Login con email + password
POST /api/auth/register AuthController@register Registro de nuevo usuario
POST /api/auth/social-login AuthController@socialLogin Login con Google/Microsoft
POST /api/auth/check-username AuthController@checkUsername Verificar disponibilidad de username
POST /api/auth/check-email AuthController@checkEmail Verificar si email ya existe
GET /api/universidades UniversidadController@index Listar universidades
GET /api/universidades/{id}/carreras UniversidadController@getCarreras Carreras de una universidad
GET /api/carreras UniversidadController@getAllCarreras Todas las carreras
GET /api/posts PostController@index Feed de posts (paginado)
GET /api/posts/{post} PostController@show Detalle de un post
POST /api/posts/filter PostController@filtropost Filtrar posts por universidad/carrera
GET /api/posts/user/{userId} PostController@userPosts Posts de un usuario
GET /api/music/search MusicSearchController@search Buscar música (iTunes)
GET /api/music/track MusicSearchController@getTrack Detalle de un track
GET /api/music/genre MusicSearchController@searchByGenre Buscar por género
GET /api/music/popular MusicSearchController@getPopular Música popular
GET /api/check-update AppUpdateController@checkUpdate Verificar actualizaciones OTA
GET /api/test Closure Health check

Rutas Protegidas (auth:sanctum)

Auth

Método Ruta Controlador Descripción
POST /api/auth/logout AuthController@logout Cerrar sesión (revoca token)
GET /api/auth/me AuthController@me Perfil del usuario autenticado
GET /api/auth/user AuthController@me Alias de /me
PUT /api/user/edit AuthController@edit Editar perfil + imagen

Posts