Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Bloque de código
languagejava
themeEclipse
titleEjemplo ResponseEntity
collapsetrue
    //EJEMPLO ResponseEntity con éxito
	public ResponseEntity<String> simpleAsyncTask( @RequestParam( defaultValue = "60" ) long t,
			@RequestParam( defaultValue = "1" ) long sleep ) throws InterruptedException {

		String result = "";
		log.info( "Entro en simpleAsyncTask {} - {}", t, sleep );

		final CompletableFuture<String> asyncStatus = service.asyncMethod( sleep * 1000, t );
		result = asyncStatus.getNow( "ko" );
		log.info( "Salgo de simpleAsyncTask" );

		return ResponseEntity.ok( result );
	}

    //EJEMPLO ResponseEntity con error
	@ExceptionHandler( TestLocalHandlerException.class )
	public ResponseEntity<TestLocalHandlerError> handleTestLocalHandler( TestLocalHandlerException ex ) {

		final TestLocalHandlerError error = TestLocalHandlerError.builder()
				.estado( HttpStatus.INTERNAL_SERVER_ERROR ).fecha( LocalDateTime.now() )
				.mensaje( ex.getMessage() ).build();

		return ResponseEntity.status( HttpStatus.INTERNAL_SERVER_ERROR ).body( error );

	}


Como complemeto a estas buenas prácticas, hay que recordar tener en mente siempre el enfoque a recurso en la definición de los endpoints:

  • definir path con sustantivos según el recurso a exponer, evitando usar verbos (Por ejemplo /pueblos, /titulaciones, etc).
  • usar sustantivos en plural.
  • usar los métodos HTTP correctamente, por ejemplo: un mismo path /cars puede servir para obtener un coche (GET) o para insertar un coche (POST) en dos endpoints diferentes.

Más info sobre buenas prácticas en la Wiki de FundeWeb => https://wiki.um.es/wikis/programador/doku.php?id=fdw2.0:fundeweb2.0:gt:rest:buenas_pracitcas


...

Guía detallada  

Spring Boot proporciona varios mecanismos para capturar excepciones (global o localmente) y devolver mensajes de error (estándar o personalizados). Estos mecanismos han ido evolucionando con las diversas versiones del framework y, en algunos casos, pueden llegar a solaparse.

...