Controller

Para crear nuestros servicios creamos el paquete com.tutosoftware.manager.controller
Creamos la clase UsuarioController
 
       
  package com.tutosoftware.manager.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import com.tutosoftware.manager.model.Usuario;
import com.tutosoftware.manager.service.UsuarioService;

@RestController
@RequestMapping(value="/api/v1")
@CrossOrigin(origins= {"*"})
public class UsuarioController {
	
	@Autowired
	private UsuarioService usuarioService;
	
	
	@GetMapping("/usuario/{email}")
	public ResponseEntity<Usuario> getUsuarioById(@PathVariable("email") String email){
		Usuario usuario= usuarioService.getUsuario(email).orElseThrow();
		return new ResponseEntity<Usuario>(usuario, HttpStatus.OK);
	}
	
	@PostMapping("/usuario")
	@ResponseStatus(HttpStatus.CREATED)
	public ResponseEntity<?> registrarUsuario(@RequestBody Usuario usuario){
		
		usuarioService.crearUsuario(usuario);
		Map<String,Object> response=new HashMap<>();
		
		response.put("mensaje","El usuario ha sido creado con exito");
		
		return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
		
		
	}
	
	@GetMapping("/usuario")
	public List<Usuario> getusuarios(){
		return usuarioService.listAll();
	}
	
	@PutMapping("/usuario/{email}")
	@ResponseStatus(HttpStatus.CREATED)
	public ResponseEntity<?> updateUsuario(@RequestBody Usuario usuario,@PathVariable String email){
		
		Optional<Usuario> usuarioData = usuarioService.getUsuario(email);
		
		  Map<String,Object> response = new HashMap<>();

		  if (usuarioData.isPresent()) {
		    Usuario _usuario = usuarioData.get();
		    _usuario.setNombre(usuario.getNombre());
		    _usuario.setApellidoPaterno(usuario.getApellidoPaterno());
		    _usuario.setApellidoMaterno(usuario.getApellidoMaterno());
		    _usuario.setContrasena(usuario.getContrasena());
		    _usuario.setRol(usuario.getRol());
		    
		    usuarioService.actualizarUsuario(_usuario);
		    
		    return new ResponseEntity<>(response, HttpStatus.CREATED);
		  } else {
		    return new ResponseEntity<>(HttpStatus.NOT_FOUND);
		  }
		
	}
	
	@DeleteMapping("/usuario/{email}")
	public ResponseEntity<?> delete(@PathVariable String email){
		Map<String,Object> response = new HashMap<>();
		
		usuarioService.eliminarUsuario(email);
		
		response.put("mensaje","El usuario se ha eliminado con exito");
		
		return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
				
		
	}
	

}

		   
		   
	     
       

Creamos la clase ClienteController
 
       
	package com.tutosoftware.manager.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import com.tutosoftware.manager.model.Cliente;
import com.tutosoftware.manager.service.ClienteService;

@RestController
@RequestMapping(value="/api/v1")
@CrossOrigin(origins= {"*"})
public class ClienteController {
	
	@Autowired
	ClienteService clienteService;
	
	
	@GetMapping("/cliente/{id}")
	public ResponseEntity<Cliente> getClienteById(@PathVariable("id") Long id){
		Cliente cliente= clienteService.getCliente(id).orElseThrow();
		return new ResponseEntity<Cliente>(cliente, HttpStatus.OK);
	}
	
	@PostMapping("/cliente")
	@ResponseStatus(HttpStatus.CREATED)
	public ResponseEntity<?> registrarCliente(@RequestBody Cliente cliente){
		
		clienteService.crearCliente(cliente);
		Map<String,Object> response=new HashMap<>();
		
		response.put("mensaje","El cliente ha sido creado con exito");
		
		return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
		
		
	}
	
	@GetMapping("/cliente")
	public List<Cliente> getClientes(){
		return clienteService.listAll();
	}
	
	
	@DeleteMapping("/cliente/{id}")
	public ResponseEntity<?> delete(@PathVariable Long id){
		Map<String,Object> response = new HashMap<>();
		
		clienteService.eliminarCliente(id);
		
		response.put("mensaje","El cliente se ha eliminado con exito");
		
		return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
				
		
	}
	
	
	


}	   
		   
	   
       

Creamos la clase ProyectoController
 
       	   
	package com.tutosoftware.manager.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;


import com.tutosoftware.manager.model.Proyecto;
import com.tutosoftware.manager.service.ProyectoService;

@RestController
@RequestMapping(value="/api/v1")
@CrossOrigin(origins= {"*"})
public class ProyectoController {
	
	@Autowired
	ProyectoService proyectoService;
	
	
	@GetMapping("/proyecto/{id}")
	public ResponseEntity<Proyecto> getProyectoById(@PathVariable("id") Long id){
		Proyecto proyecto = proyectoService.getProyecto(id).orElseThrow();
		return new ResponseEntity<Proyecto>(proyecto, HttpStatus.OK);
	}
	
	@PostMapping("/proyecto")
	@ResponseStatus(HttpStatus.CREATED)
	public ResponseEntity<?> registrarProyecto(@RequestBody Proyecto proyecto){
		
		proyectoService.crearProyecto(proyecto);
		Map<String,Object> response=new HashMap<>();
		
		response.put("mensaje","El proyecto ha sido creado con exito");
		
		return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
		
		
	}
	
	
	
	
	@GetMapping("/proyecto")
	public List<Proyecto> getProyectos(){
		return proyectoService.listAll();
	}
	
	
	@DeleteMapping("/proyecto/{id}")
	public ResponseEntity<?> delete(@PathVariable Long id){
		Map<String,Object> response = new HashMap<>();
		
		proyectoService.eliminarProyecto(id);
		
		response.put("mensaje","El proyecto se ha eliminado con exito");
		
		return new ResponseEntity<Map<String,Object>>(response,HttpStatus.CREATED);
				
		
	}

}