Automatically augmenting functionality in an application programming
interface ("API") is provided by receiving from an application a request
for functionality to be fulfilled by a first component implementing at
least a portion of the functionality within the application programming
interface. The first component is queried for the requested functionality.
If an indication that the first component does not implement the requested
functionality is received, the a search for an augmentation component that
implements the requested functionality is initiated. If an augmentation
component supplying the required functionality is found, the augmentation
component is loaded to fulfill the request for functionality in place of
the first component and used to respond to the request for functionality.
Augmentation components provide a subset of the API's required
functionality, thereby removing a limitation from API components (i.e.,
functionality completeness). Augmentation components may also be used to
provide new functionality for the API to all existing components (i.e.,
functionality enhancement).