What are Resources?A resource is something that is available to fulfill some systemic or human need.The IETF Uniform Resource Identifiers (URIs): General syntax specification [RFC 3986] defines a resource simply as "whatever might be identified by a URI." This broad and generic definition of a resource allows for many possibilities in software applications, as resources may be systems, devices, services, components, data, and even program units.
What is an Interface?
What is a Feature?
Feature interfaces can also be aggregated like building blocks to describe complex behaviors and interactions, while adding a measure of isolation between each feature. When done properly, a resource can have its functionality fully described and allow new features added without negatively impacting clients. While REST helps to mitigate this specific issue, the client compatibility issue still remains for strongly types systems and does not provide a standardized means for a resource to implement multiple versions of the same featureset, making backward compatibility with older clients much easier. In addition, new resources can be added to the network or system and clients written to specific features will be able to interact with those new resources without change. When combined with a service discovery protocol, the clients will not even need a configuration change.