Browse Source

Replace RFC7807 by RFC9457 in documentation

This commit updates all references to RFC7807 by RFC9457 since the
former is now obsolete.

Closes gh-32806
pull/32864/head
Brian Clozel 2 years ago
parent
commit
89ce63f1f3
  1. 12
      framework-docs/modules/ROOT/pages/web/webflux/ann-rest-exceptions.adoc
  2. 4
      framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/return-types.adoc
  3. 12
      framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc
  4. 4
      framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-exceptionhandler.adoc
  5. 4
      framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/return-types.adoc
  6. 6
      spring-web/src/main/java/org/springframework/http/MediaType.java
  7. 4
      spring-web/src/main/java/org/springframework/http/ProblemDetail.java
  8. 6
      spring-web/src/main/java/org/springframework/web/ErrorResponse.java
  9. 2
      spring-web/src/main/java/org/springframework/web/ErrorResponseException.java
  10. 2
      spring-web/src/main/java/org/springframework/web/multipart/support/MissingServletRequestPartException.java
  11. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageWriterResultHandler.java
  12. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityExceptionHandler.java
  13. 2
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java
  14. 2
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseEntityExceptionHandler.java

12
framework-docs/modules/ROOT/pages/web/webflux/ann-rest-exceptions.adoc

@ -5,14 +5,14 @@ @@ -5,14 +5,14 @@
A common requirement for REST services is to include details in the body of error
responses. The Spring Framework supports the "Problem Details for HTTP APIs"
specification, {rfc-site}/rfc7807.html[RFC 7807].
specification, {rfc-site}/rfc9457.html[RFC 9457].
The following are the main abstractions for this support:
- `ProblemDetail` -- representation for an RFC 7807 problem detail; a simple container
- `ProblemDetail` -- representation for an RFC 9457 problem detail; a simple container
for both standard fields defined in the spec, and for non-standard ones.
- `ErrorResponse` -- contract to expose HTTP error response details including HTTP
status, response headers, and a body in the format of RFC 7807; this allows exceptions to
status, response headers, and a body in the format of RFC 9457; this allows exceptions to
encapsulate and expose the details of how they map to an HTTP response. All Spring WebFlux
exceptions implement this.
- `ErrorResponseException` -- basic `ErrorResponse` implementation that others
@ -28,7 +28,7 @@ and any `ErrorResponseException`, and renders an error response with a body. @@ -28,7 +28,7 @@ and any `ErrorResponseException`, and renders an error response with a body.
[.small]#xref:web/webmvc/mvc-ann-rest-exceptions.adoc#mvc-ann-rest-exceptions-render[See equivalent in the Servlet stack]#
You can return `ProblemDetail` or `ErrorResponse` from any `@ExceptionHandler` or from
any `@RequestMapping` method to render an RFC 7807 response. This is processed as follows:
any `@RequestMapping` method to render an RFC 9457 response. This is processed as follows:
- The `status` property of `ProblemDetail` determines the HTTP status.
- The `instance` property of `ProblemDetail` is set from the current URL path, if not
@ -37,7 +37,7 @@ already set. @@ -37,7 +37,7 @@ already set.
"application/problem+json" over "application/json" when rendering a `ProblemDetail`,
and also falls back on it if no compatible media type is found.
To enable RFC 7807 responses for Spring WebFlux exceptions and for any
To enable RFC 9457 responses for Spring WebFlux exceptions and for any
`ErrorResponseException`, extend `ResponseEntityExceptionHandler` and declare it as an
xref:web/webflux/controller/ann-advice.adoc[@ControllerAdvice] in Spring configuration. The handler
has an `@ExceptionHandler` method that handles any `ErrorResponse` exception, which
@ -50,7 +50,7 @@ use a protected method to map any exception to a `ProblemDetail`. @@ -50,7 +50,7 @@ use a protected method to map any exception to a `ProblemDetail`.
== Non-Standard Fields
[.small]#xref:web/webmvc/mvc-ann-rest-exceptions.adoc#mvc-ann-rest-exceptions-non-standard[See equivalent in the Servlet stack]#
You can extend an RFC 7807 response with non-standard fields in one of two ways.
You can extend an RFC 9457 response with non-standard fields in one of two ways.
One, insert into the "properties" `Map` of `ProblemDetail`. When using the Jackson
library, the Spring Framework registers `ProblemDetailJacksonMixin` that ensures this

4
framework-docs/modules/ROOT/pages/web/webflux/controller/ann-methods/return-types.adoc

@ -24,11 +24,11 @@ generally supported for all return values. @@ -24,11 +24,11 @@ generally supported for all return values.
| For returning a response with headers and no body.
| `ErrorResponse`
| To render an RFC 7807 error response with details in the body,
| To render an RFC 9457 error response with details in the body,
see xref:web/webflux/ann-rest-exceptions.adoc[Error Responses]
| `ProblemDetail`
| To render an RFC 7807 error response with details in the body,
| To render an RFC 9457 error response with details in the body,
see xref:web/webflux/ann-rest-exceptions.adoc[Error Responses]
| `String`

12
framework-docs/modules/ROOT/pages/web/webmvc/mvc-ann-rest-exceptions.adoc

@ -5,14 +5,14 @@ @@ -5,14 +5,14 @@
A common requirement for REST services is to include details in the body of error
responses. The Spring Framework supports the "Problem Details for HTTP APIs"
specification, {rfc-site}/rfc7807[RFC 7807].
specification, {rfc-site}/rfc9457[RFC 9457].
The following are the main abstractions for this support:
- `ProblemDetail` -- representation for an RFC 7807 problem detail; a simple container
- `ProblemDetail` -- representation for an RFC 9457 problem detail; a simple container
for both standard fields defined in the spec, and for non-standard ones.
- `ErrorResponse` -- contract to expose HTTP error response details including HTTP
status, response headers, and a body in the format of RFC 7807; this allows exceptions to
status, response headers, and a body in the format of RFC 9457; this allows exceptions to
encapsulate and expose the details of how they map to an HTTP response. All Spring MVC
exceptions implement this.
- `ErrorResponseException` -- basic `ErrorResponse` implementation that others
@ -28,7 +28,7 @@ and any `ErrorResponseException`, and renders an error response with a body. @@ -28,7 +28,7 @@ and any `ErrorResponseException`, and renders an error response with a body.
[.small]#xref:web/webflux/ann-rest-exceptions.adoc#webflux-ann-rest-exceptions-render[See equivalent in the Reactive stack]#
You can return `ProblemDetail` or `ErrorResponse` from any `@ExceptionHandler` or from
any `@RequestMapping` method to render an RFC 7807 response. This is processed as follows:
any `@RequestMapping` method to render an RFC 9457 response. This is processed as follows:
- The `status` property of `ProblemDetail` determines the HTTP status.
- The `instance` property of `ProblemDetail` is set from the current URL path, if not
@ -37,7 +37,7 @@ already set. @@ -37,7 +37,7 @@ already set.
"application/problem+json" over "application/json" when rendering a `ProblemDetail`,
and also falls back on it if no compatible media type is found.
To enable RFC 7807 responses for Spring WebFlux exceptions and for any
To enable RFC 9457 responses for Spring WebFlux exceptions and for any
`ErrorResponseException`, extend `ResponseEntityExceptionHandler` and declare it as an
xref:web/webmvc/mvc-controller/ann-advice.adoc[@ControllerAdvice] in Spring configuration. The handler
has an `@ExceptionHandler` method that handles any `ErrorResponse` exception, which
@ -50,7 +50,7 @@ use a protected method to map any exception to a `ProblemDetail`. @@ -50,7 +50,7 @@ use a protected method to map any exception to a `ProblemDetail`.
== Non-Standard Fields
[.small]#xref:web/webflux/ann-rest-exceptions.adoc#webflux-ann-rest-exceptions-non-standard[See equivalent in the Reactive stack]#
You can extend an RFC 7807 response with non-standard fields in one of two ways.
You can extend an RFC 9457 response with non-standard fields in one of two ways.
One, insert into the "properties" `Map` of `ProblemDetail`. When using the Jackson
library, the Spring Framework registers `ProblemDetailJacksonMixin` that ensures this

4
framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-exceptionhandler.adoc

@ -228,11 +228,11 @@ level, xref:web/webmvc/mvc-servlet/exceptionhandlers.adoc[HandlerExceptionResolv @@ -228,11 +228,11 @@ level, xref:web/webmvc/mvc-servlet/exceptionhandlers.adoc[HandlerExceptionResolv
See xref:web/webmvc/mvc-controller/ann-methods/responseentity.adoc[ResponseEntity].
| `ErrorResponse`
| To render an RFC 7807 error response with details in the body,
| To render an RFC 9457 error response with details in the body,
see xref:web/webmvc/mvc-ann-rest-exceptions.adoc[Error Responses]
| `ProblemDetail`
| To render an RFC 7807 error response with details in the body,
| To render an RFC 9457 error response with details in the body,
see xref:web/webmvc/mvc-ann-rest-exceptions.adoc[Error Responses]
| `String`

4
framework-docs/modules/ROOT/pages/web/webmvc/mvc-controller/ann-methods/return-types.adoc

@ -23,11 +23,11 @@ supported for all return values. @@ -23,11 +23,11 @@ supported for all return values.
| For returning a response with headers and no body.
| `ErrorResponse`
| To render an RFC 7807 error response with details in the body,
| To render an RFC 9457 error response with details in the body,
see xref:web/webmvc/mvc-ann-rest-exceptions.adoc[Error Responses]
| `ProblemDetail`
| To render an RFC 7807 error response with details in the body,
| To render an RFC 9457 error response with details in the body,
see xref:web/webmvc/mvc-ann-rest-exceptions.adoc[Error Responses]
| `String`

6
spring-web/src/main/java/org/springframework/http/MediaType.java

@ -184,7 +184,7 @@ public class MediaType extends MimeType implements Serializable { @@ -184,7 +184,7 @@ public class MediaType extends MimeType implements Serializable {
/**
* Public constant media type for {@code application/problem+json}.
* @since 5.0
* @see <a href="https://tools.ietf.org/html/rfc7807#section-6.1">
* @see <a href="https://www.iana.org/assignments/media-types/application/problem+json">
* Problem Details for HTTP APIs, 6.1. application/problem+json</a>
*/
public static final MediaType APPLICATION_PROBLEM_JSON;
@ -198,7 +198,7 @@ public class MediaType extends MimeType implements Serializable { @@ -198,7 +198,7 @@ public class MediaType extends MimeType implements Serializable {
/**
* Public constant media type for {@code application/problem+json}.
* @since 5.0
* @see <a href="https://tools.ietf.org/html/rfc7807#section-6.1">
* @see <a href="https://www.iana.org/assignments/media-types/application/problem+json">
* Problem Details for HTTP APIs, 6.1. application/problem+json</a>
* @deprecated as of 5.2 in favor of {@link #APPLICATION_PROBLEM_JSON}
* since major browsers like Chrome
@ -224,7 +224,7 @@ public class MediaType extends MimeType implements Serializable { @@ -224,7 +224,7 @@ public class MediaType extends MimeType implements Serializable {
/**
* Public constant media type for {@code application/problem+xml}.
* @since 5.0
* @see <a href="https://tools.ietf.org/html/rfc7807#section-6.2">
* @see <a href="https://www.iana.org/assignments/media-types/application/problem+xml">
* Problem Details for HTTP APIs, 6.2. application/problem+xml</a>
*/
public static final MediaType APPLICATION_PROBLEM_XML;

4
spring-web/src/main/java/org/springframework/http/ProblemDetail.java

@ -26,7 +26,7 @@ import org.springframework.util.Assert; @@ -26,7 +26,7 @@ import org.springframework.util.Assert;
import org.springframework.util.ObjectUtils;
/**
* Representation for an RFC 7807 problem detail. Includes spec-defined
* Representation for an RFC 9457 problem detail. Includes spec-defined
* properties, and a {@link #getProperties() properties} map for additional,
* non-standard properties.
*
@ -45,7 +45,7 @@ import org.springframework.util.ObjectUtils; @@ -45,7 +45,7 @@ import org.springframework.util.ObjectUtils;
* @author Rossen Stoyanchev
* @author Juergen Hoeller
* @since 6.0
* @see <a href="https://datatracker.ietf.org/doc/html/rfc7807">RFC 7807</a>
* @see <a href="https://datatracker.ietf.org/doc/html/rfc9457">RFC 9457</a>
* @see org.springframework.web.ErrorResponse
* @see org.springframework.web.ErrorResponseException
*/

6
spring-web/src/main/java/org/springframework/web/ErrorResponse.java

@ -27,8 +27,8 @@ import org.springframework.http.ProblemDetail; @@ -27,8 +27,8 @@ import org.springframework.http.ProblemDetail;
import org.springframework.lang.Nullable;
/**
* Representation of a complete RFC 7807 error response including status,
* headers, and an RFC 7807 formatted {@link ProblemDetail} body. Allows any
* Representation of a complete RFC 9457 error response including status,
* headers, and an RFC 9457 formatted {@link ProblemDetail} body. Allows any
* exception to expose HTTP error response information.
*
* <p>{@link ErrorResponseException} is a default implementation of this
@ -58,7 +58,7 @@ public interface ErrorResponse { @@ -58,7 +58,7 @@ public interface ErrorResponse {
}
/**
* Return the body for the response, formatted as an RFC 7807
* Return the body for the response, formatted as an RFC 9457
* {@link ProblemDetail} whose {@link ProblemDetail#getStatus() status}
* should match the response status.
*/

2
spring-web/src/main/java/org/springframework/web/ErrorResponseException.java

@ -26,7 +26,7 @@ import org.springframework.lang.Nullable; @@ -26,7 +26,7 @@ import org.springframework.lang.Nullable;
/**
* {@link RuntimeException} that implements {@link ErrorResponse} to expose
* an HTTP status, response headers, and a body formatted as an RFC 7807
* an HTTP status, response headers, and a body formatted as an RFC 9457
* {@link ProblemDetail}.
*
* <p>The exception can be used as is, or it can be extended as a more specific

2
spring-web/src/main/java/org/springframework/web/multipart/support/MissingServletRequestPartException.java

@ -75,7 +75,7 @@ public class MissingServletRequestPartException extends ServletException impleme @@ -75,7 +75,7 @@ public class MissingServletRequestPartException extends ServletException impleme
}
/**
* Return the body for the response, formatted as an RFC 7807
* Return the body for the response, formatted as an RFC 9457
* {@link ProblemDetail} whose {@link ProblemDetail#getStatus() status}
* should match the response status.
*/

2
spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageWriterResultHandler.java

@ -175,7 +175,7 @@ public abstract class AbstractMessageWriterResultHandler extends HandlerResultHa @@ -175,7 +175,7 @@ public abstract class AbstractMessageWriterResultHandler extends HandlerResultHa
throw ex;
}
// For ProblemDetail, fall back on RFC 7807 format
// For ProblemDetail, fall back on RFC 9457 format
if (bestMediaType == null && ProblemDetail.class.isAssignableFrom(elementType.toClass())) {
bestMediaType = selectMediaType(exchange, () -> getMediaTypesFor(elementType), this.problemMediaTypes);
}

2
spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityExceptionHandler.java

@ -50,7 +50,7 @@ import org.springframework.web.server.UnsupportedMediaTypeStatusException; @@ -50,7 +50,7 @@ import org.springframework.web.server.UnsupportedMediaTypeStatusException;
/**
* A class with an {@code @ExceptionHandler} method that handles all Spring
* WebFlux raised exceptions by returning a {@link ResponseEntity} with
* RFC 7807 formatted error details in the body.
* RFC 9457 formatted error details in the body.
*
* <p>Convenient as a base class of an {@link ControllerAdvice @ControllerAdvice}
* for global exception handling in an application. Subclasses can override

2
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AbstractMessageConverterMethodProcessor.java

@ -243,7 +243,7 @@ public abstract class AbstractMessageConverterMethodProcessor extends AbstractMe @@ -243,7 +243,7 @@ public abstract class AbstractMessageConverterMethodProcessor extends AbstractMe
List<MediaType> compatibleMediaTypes = new ArrayList<>();
determineCompatibleMediaTypes(acceptableTypes, producibleTypes, compatibleMediaTypes);
// For ProblemDetail, fall back on RFC 7807 format
// For ProblemDetail, fall back on RFC 9457 format
if (compatibleMediaTypes.isEmpty() && ProblemDetail.class.isAssignableFrom(valueType)) {
determineCompatibleMediaTypes(this.problemMediaTypes, producibleTypes, compatibleMediaTypes);
}

2
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseEntityExceptionHandler.java

@ -58,7 +58,7 @@ import org.springframework.web.util.WebUtils; @@ -58,7 +58,7 @@ import org.springframework.web.util.WebUtils;
/**
* A class with an {@code @ExceptionHandler} method that handles all Spring MVC
* raised exceptions by returning a {@link ResponseEntity} with RFC 7807
* raised exceptions by returning a {@link ResponseEntity} with RFC 9457
* formatted error details in the body.
*
* <p>Convenient as a base class of an {@link ControllerAdvice @ControllerAdvice}

Loading…
Cancel
Save