From 053ac64101362fe749bf4138e96df0eff9d1e2f2 Mon Sep 17 00:00:00 2001 From: Kazuki Shimizu Date: Sun, 8 Jan 2017 14:48:02 +0900 Subject: [PATCH] Add "Problem Details for HTTP APIs" media types See RFC 7807: Problem Details for HTTP APIs * application/problem+json * application/problem+xml Issue: SPR-15110 --- .../org/springframework/http/MediaType.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/spring-web/src/main/java/org/springframework/http/MediaType.java b/spring-web/src/main/java/org/springframework/http/MediaType.java index 5679ba4cbd7..8387f427ec0 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaType.java +++ b/spring-web/src/main/java/org/springframework/http/MediaType.java @@ -43,6 +43,7 @@ import org.springframework.util.comparator.CompoundComparator; * @author Juergen Hoeller * @author Rossen Stoyanchev * @author Sebastien Deleuze + * @author Kazuki Shimizu * @since 3.0 * @see HTTP 1.1: Semantics and Content, section 3.1.1.1 */ @@ -251,6 +252,31 @@ public class MediaType extends MimeType implements Serializable { */ public final static String TEXT_XML_VALUE = "text/xml"; + /** + * Public constant media type for {@code application/problem+json}. + * @since 5.0.0 + * @see Problem Details for HTTP APIs, 6.1. application/problem+json + */ + public final static MediaType APPLICATION_PROBLEM_JSON; + + /** + * A String equivalent of {@link MediaType#APPLICATION_PROBLEM_JSON}. + * @since 5.0.0 + */ + public final static String APPLICATION_PROBLEM_JSON_VALUE = "application/problem+json"; + + /** + * Public constant media type for {@code application/problem+xml}. + * @since 5.0.0 + * @see Problem Details for HTTP APIs, 6.2. application/problem+xml + */ + public final static MediaType APPLICATION_PROBLEM_XML; + + /** + * A String equivalent of {@link MediaType#APPLICATION_PROBLEM_XML}. + * @since 5.0.0 + */ + public final static String APPLICATION_PROBLEM_XML_VALUE = "application/problem+xml"; private static final String PARAM_QUALITY_FACTOR = "q"; @@ -263,6 +289,8 @@ public class MediaType extends MimeType implements Serializable { APPLICATION_JSON_UTF8 = valueOf(APPLICATION_JSON_UTF8_VALUE); APPLICATION_OCTET_STREAM = valueOf(APPLICATION_OCTET_STREAM_VALUE); APPLICATION_PDF = valueOf(APPLICATION_PDF_VALUE); + APPLICATION_PROBLEM_JSON = valueOf(APPLICATION_PROBLEM_JSON_VALUE); + APPLICATION_PROBLEM_XML = valueOf(APPLICATION_PROBLEM_XML_VALUE); APPLICATION_RSS_XML = valueOf(APPLICATION_RSS_XML_VALUE); APPLICATION_XHTML_XML = valueOf(APPLICATION_XHTML_XML_VALUE); APPLICATION_XML = valueOf(APPLICATION_XML_VALUE);