- Api base para comenzar desarrollo.
- Registro de usuarios(Autenticación) mediante JWT
- Autorización mediante la gema Cancancan
- Avatar de usuario mediante la gema Carrierwave (Imagen por defecto para cada usuario)
- Versionamiento mediante Concerns en routing
- Prevención de requests masivas mediante la gema rack-attack
Usuario Admin por defecto
- Usuarios (Solo administrador puede ver este endpoint)
- Eliminar/Editar/Ver Usuario (Requiere token)
- Registro de usuario (devuelve token asi evitar enviar 2 request para obtener token al registrarse)
curl -H 'Content-Type: application/json' -d '{"user": {"email": "emaildomain.com","password": "password","password_confirmation":"password", "username":"user_example"}}' localhost:3000/api/v1/sign_up
- Autenticación de usuario (devuelve token)
curl -H 'Content-Type: application/json' -d '{"auth": {"email": "[email protected]","password": "password"}}' localhost:3000/api/v1/sign_in
- Usuario actual (devuelve username actual)
curl -H 'Content-Type: application/json' -H 'Authorization: JWT' localhost:3000/api/v1/auth
- Subir/Editar avatar usuario
curl -X PATCH -v -H 'Content-Type: multipart/form-data' -H 'Accept: application/json' -H 'Authorization: JWT' -F "user[avatar]=@/PATH_FILE" localhost:3000/api/v1/users/USERNAME
- Editar usuario
- Campos : email, username, etc..
- Para actualizar la contraseña se requiere de los campos:
- current_password, password, password_confirmation
curl -X PATCH -H 'Content-Type: application/json' -H 'Authorization: JWT' -d '{"user": {"email":"[email protected]"}}' localhost:3000/api/v1/users/USERNAME
- Posibilidad de dar cuenta de baja (Administrador puede eliminar cualquier usuario)
curl -X DELETE -H 'Content-Type: application/json' -H 'Authorization: JWT' localhost:3000/api/v1/users/USERNAME
- Ver usuario en particular
curl -H 'Content-Type: application/json' -H 'Authorization: JWT' localhost:3000/api/v1/users/USERNAME
- Listar usuarios
- Solo el usuario con rol "admin" puede modificar/eliminar a otros usuarios además de listarlos.
curl -H 'Content-Type: application/json' -H 'Authorization: JWT' localhost:3000/api/v1/admin/users
bundle install
rails db:create
rails db:migrate
rails db:seed
rails server