# Deprecating Resources and Properties (Alternative to Versioning) A best practice regarding web APIs development is to apply [the evolution strategy](https://phil.tech/api/2018/05/02/api-evolution-for-rest-http-apis/) to indicate to client applications which resource types, operations and fields are deprecated and shouldn't be used anymore. While versioning an API requires modifying all clients to upgrade, even the ones not impacted by the changes. It's a tedious task that should be avoided as much as possible. On the other hand, the evolution strategy (also known as versionless APIs) consists of deprecating the fields, resources types or operations that will be removed at some point. Most modern API formats including [JSON-LD / Hydra](content-negotiation.md), [GraphQL](graphql.md) and [OpenAPI](swagger.md) allow to mark resources types, operations or fields as deprecated. ## Deprecating Resource Classes, Operations and Properties When using API Platform, it's easy to mark a whole resource, a specific operation or a specific property as deprecated. All documentation formats mentioned in the introduction will then automatically take the deprecation into account. To deprecate a resource class, use the `deprecationReason` attribute: ```php