package org.zalando.problem.spring.web.advice.http; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.web.HttpMediaTypeNotSupportedException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.context.request.NativeWebRequest; import org.zalando.problem.Problem; import org.zalando.problem.spring.web.advice.AdviceTrait; import javax.ws.rs.core.Response.Status; /** * @see HttpMediaTypeNotSupportedException * @see Status#UNSUPPORTED_MEDIA_TYPE */ public interface UnsupportedMediaTypeAdviceTrait extends AdviceTrait { @ExceptionHandler default ResponseEntity<Problem> handleMediaTypeNotSupportedException( final HttpMediaTypeNotSupportedException exception, final NativeWebRequest request) { final HttpHeaders headers = new HttpHeaders(); headers.setAccept(exception.getSupportedMediaTypes()); return create(Status.UNSUPPORTED_MEDIA_TYPE, exception, request, headers); } }