docs/greenfield-development.md
/swagger/v1/swagger.json.JsonConverter usage should be registered through attributes within the model itself.decimal and long and other similar types, if there is a need for decimal precision or has the possibility of an overflow issue, should be serialized to a string and able to deserialize from the original type and a string.POST - Create or custom actionPUT - Update full modelPATCH - Update partiallyDELETE - Delete or Archive[
{
"path": "prop-name",
"message": "human readable message"
}
]
{
"code": "unique-error-code",
"message":"a human readable message"
}
Changing a property on a model is a breaking change unless the server starts handling both versions.
JsonConverter that allows conversion between the original type and the new type. However, if this option is used, you will need to ensure that the response model returns the same format. In the case of the GET endpoint, you will break clients expecting the original type.Removing a property on a model is a breaking change.
Adding a property on a model can potentially be a breaking change. It is a breaking change if:
POST) or set to the model's current value. See Detecting missing properties in a JSON model for how to achieve this.[JsonExtensionData]AdditionalData so that clients receive the full payload even after updating only the server. This is problematic as it only fixes clients which implement this opinionated flow (this is not a standard or common way of doing API calls) .Possible solutions:
JSON.NET Serialization Callabacks to set a List<string> MissingProperties; variable.