Skip to content

Back-End del Sistema de Control de Stock implementado con Springboot Java

Notifications You must be signed in to change notification settings

leandrojsandoval/TallerDeIntegracionBackEnd

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TP Integracion BackEnd

Este proyecto es una aplicación Java Spring Boot que implementa una API REST para manejar usuarios.

Estructura del Proyecto

El proyecto sigue una estructura MVC (Modelo-Vista-Controlador), organizada de la siguiente manera:

  • Modelo: Contiene la definición de la entidad Usuario, que representa los datos de los usuarios en la base de datos.
  • Repositorio: Define la interfaz UsuarioRepository para acceder a los datos de los usuarios en la base de datos.
  • Servicio: Contiene la clase UsuarioService que implementa la lógica de negocio relacionada con los usuarios.
  • Controlador: Contiene el UsuarioController, que maneja las peticiones relacionadas con los usuarios.

Dependencias

El proyecto utiliza las siguientes dependencias principales:

  • Spring Boot
  • Spring Data JPA
  • Hibernate
  • H2 Database (para propósitos de demostración)

Ejecución

Para ejecutar la aplicación, puedes usar el siguiente comando:

`mvn spring-boot:run` 

Esto iniciará la aplicación en un servidor embebido Tomcat en el puerto por defecto 8080.

Uso

Una vez que la aplicación esté en funcionamiento, puedes enviar peticiones HTTP a los endpoints definidos en el UsuarioController para realizar operaciones como iniciar sesión, crear, actualizar o eliminar usuarios.

Ejemplo de Endpoint

Iniciar Sesión

`POST /api/login` 

Parámetros de solicitud:

  • username: Nombre de usuario
  • password: Contraseña

Respuesta:

  • 200 OK: Usuario encontrado y autenticado correctamente.
  • 401 Unauthorized: Nombre de usuario o contraseña incorrectos. Swager del APi funcionado

Contribución

Si deseas contribuir a este proyecto, por favor sigue los siguientes pasos:

  1. Haz un fork del repositorio.
  2. Crea una rama (git checkout -b feature/MyFeature).
  3. Realiza tus cambios y haz commit de ellos (git commit -am 'Add some feature').
  4. Haz push de la rama (git push origin feature/MyFeature).
  5. Abre un Pull Request.

¡Esperamos tus contribuciones!

Circuito de Controller, Service y Repository en Spring Boot

Este proyecto sigue la arquitectura de capas para separar las preocupaciones y mantener un código limpio y mantenible. A continuación se detalla cómo se implementan y se relacionan los controladores, servicios y repositorios para gestionar los datos de usuarios.

1. Arquitectura de Capas

El flujo de datos sigue esta estructura:

  1. Controller: Maneja las solicitudes HTTP y las respuestas.

  2. Service: Contiene la lógica de negocio.

  3. Repository: Se comunica directamente con la base de datos.

2. Controlador (Controller)

El controlador maneja las solicitudes entrantes del front-end y las dirige al servicio correspondiente. Aquí tienes un ejemplo de un controlador de usuarios:

java

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        User user = userService.getUserById(id);
        return ResponseEntity.ok(user);
    }

    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody User user) {
        User createdUser = userService.createUser(user);
        return ResponseEntity.status(HttpStatus.CREATED).body(createdUser);
    }
}

3. Servicio (Service)

El servicio contiene la lógica de negocio. Es el intermediario entre el controlador y el repositorio. Aquí tienes un ejemplo de un servicio de usuarios:

java

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public User getUserById(Long id) {
        return userRepository.findById(id).orElseThrow(() -> new ResourceNotFoundException("User not found"));
    }

    public User createUser(User user) {
        return userRepository.save(user);
    }
}

4. Repositorio (Repository)

El repositorio se encarga de interactuar con la base de datos. Utiliza JPA para realizar operaciones CRUD. Aquí tienes un ejemplo de un repositorio de usuarios:

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    // Métodos de consulta personalizados si es necesario
}

5. Modelo (Model)

El modelo representa la estructura de los datos en la base de datos. Aquí tienes un ejemplo de una entidad de usuario:

java

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String username;
    private String password;
    private String email;

    // Getters y setters
}

6. Comunicación entre Front-end y Back-end

Para que el front-end pueda comunicarse con el back-end y obtener datos de usuarios, se deben seguir estos pasos:

  1. Solicitud HTTP desde el Front-end: El front-end envía una solicitud HTTP al controlador del back-end. Por ejemplo, una solicitud GET para obtener información de un usuario específico.

typescript

// Angular Service para llamar a la API
@Injectable({
  providedIn: 'root'
})
export class UserService {

  private apiUrl = 'http://localhost:8080/api/users';

  constructor(private http: HttpClient) { }

  getUserById(id: number): Observable<User> {
    return this.http.get<User>(`${this.apiUrl}/${id}`);
  }
}
  1. Manejo de la solicitud en el Controlador: El controlador recibe la solicitud, llama al servicio correspondiente y devuelve la respuesta al front-end.

  2. Procesamiento en el Servicio: El servicio realiza la lógica de negocio necesaria y llama al repositorio para obtener o almacenar datos.

  3. Interacción con la Base de Datos a través del Repositorio: El repositorio realiza las operaciones CRUD necesarias en la base de datos.

  4. Respuesta al Front-end: El controlador recibe los datos del servicio y los envía de vuelta al front-end en forma de respuesta HTTP.

About

Back-End del Sistema de Control de Stock implementado con Springboot Java

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published