Petición Rest

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

@CrossOrigin // Para hacer peticiones desde otro servidor
@RestController // Para hacer peticiones REST
@RequestMapping("/people")
public class PersonaController {

	@Autowired
	private PersonaRepository invitadoRepository;
	
	@PostMapping("/")
	public void createPeople(@RequestBody Persona person) {
		invitadoRepository.save(person);
	}

	@DeleteMapping("/{id}")
	public void deletePeople(@PathVariable("id") Integer id) {
		Persona i = new Persona();
		i.setId(id);
		invitadoRepository.delete(i);
	}
	
	@GetMapping
	public List<Persona> selectPeople() {
		List<Persona> people = invitadoRepository.findAll();
		return people;
	}
	
	@PutMapping("/{id}")
	public void updatePeople(@RequestBody Persona person, @PathVariable("id")Integer id) {
		person.setId(id);
		invitadoRepository.save(person);
	}
}

Y aquí tienes el conjunto de de peticiones del frontend que se estan comunicando con la API anterior.

import axios from 'axios';
const instance = axios.create({ baseURL: 'http://localhost:8080/people' });

export const savePersonName = async (obj) => await instance.post('/', obj)

export const getPersons = async () => await instance.get('/');

export const deletePerson = async (id) => await instance.delete('/' + id);

export const updatePerson = async (id, name) => await instance.put('/'+id, { nombre: name });

Ejercicios REST

En los siguientes ejercicios tendrás que descargar el código fuente de una Single Page Application hecha con react. Esta aplicación tendrá uno o varios ficheros desde los que se harán peticiones a una API creada con SpringBoot.

4) Mensajería

Al generar el JSON, las relaciones oneToMany pueden ser problemáticas, si queremos que no aparezcan en el JSON, podemos utilizar este código en la entidad:

@JsonIgnoreProperties({"mensajesEnviados","mensajesRecibidos"})
public class Usuario{