65 lines
3.0 KiB
C#
65 lines
3.0 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Microsoft.AspNetCore.Mvc
|
|
{
|
|
/// <summary>
|
|
/// A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807.
|
|
/// </summary>
|
|
public class ProblemDetails
|
|
{
|
|
/// <summary>
|
|
/// A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when
|
|
/// dereferenced, it provide human-readable documentation for the problem type
|
|
/// (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be
|
|
/// "about:blank".
|
|
/// </summary>
|
|
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
|
public string Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// A short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence
|
|
/// of the problem, except for purposes of localization(e.g., using proactive content negotiation;
|
|
/// see[RFC7231], Section 3.4).
|
|
/// </summary>
|
|
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
|
public string Title { get; set; }
|
|
|
|
/// <summary>
|
|
/// The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
|
|
/// </summary>
|
|
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
|
public int? Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// A human-readable explanation specific to this occurrence of the problem.
|
|
/// </summary>
|
|
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
|
public string Detail { get; set; }
|
|
|
|
/// <summary>
|
|
/// A URI reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced.
|
|
/// </summary>
|
|
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
|
public string Instance { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets the <see cref="IDictionary{TKey, TValue}"/> for extension members.
|
|
/// <para>
|
|
/// Problem type definitions MAY extend the problem details object with additional members. Extension members appear in the same namespace as
|
|
/// other members of a problem type.
|
|
/// </para>
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// The round-tripping behavior for <see cref="Extensions"/> is determined by the implementation of the Input \ Output formatters.
|
|
/// In particular, complex types or collection types may not round-trip to the original type when using the built-in JSON or XML formatters.
|
|
/// </remarks>
|
|
[JsonExtensionData]
|
|
public IDictionary<string, object> Extensions { get; } = new Dictionary<string, object>(StringComparer.Ordinal);
|
|
}
|
|
}
|