1. A method of dynamically generating an application programming interface that enables a client to access a service provided by a server comprising: receiving a request to connect to a server that provides a service, and in response thereto, connecting to the server; downloading an interface definition language file, wherein the interface definition languages file defines the service; generating interface metadata based on the interface definition language file; and in response to a request for the service, executing a remote procedure call that causes the server to carry out the service, wherein the remote procedure call is determined based on the interface metadata.