Class RestInterfaceClient

Implements the given interface by forwarding all public methods to a REST server.

The server must talk the same protocol as registerRestInterface() generates. Be sure to set the matching method style for this. The RestInterfaceClient class will derive from the interface that is passed as a template argument. It can be used as a drop-in replacement of the real implementation of the API this way.

Inherits from

  • Object (base class)

Constructors

Name Description
this Creates a new REST implementation of I

Fields

Name Type Description
m_baseURL URL
m_methodStyle MethodStyle
m_requestFilter RestInterfaceClient.RequestFilter

Methods

Name Description
request
requestFilter An optional request filter that allows to modify each request before it is made.

Aliases

Name Description
RequestFilter

Example

interface IMyApi
{
	// GET /status
	string getStatus();

	// GET /greeting
	@property string greeting();
	// PUT /greeting
	@property void greeting(string text);
	
	// POST /new_user
	void addNewUser(string name);
	// GET /users
	@property string[] users();
	// GET /:id/name
	string getName(int id);

	Json getSomeCustomJson();
}

void application()
{
	auto api = new RestInterfaceClient!IMyApi("http://127.0.0.1/api/");

	logInfo("Status: %s", api.getStatus());
	api.greeting = "Hello, World!";
	logInfo("Greeting message: %s", api.greeting);
	api.addNewUser("Peter");
	api.addNewUser("Igor");
	logInfo("Users: %s", api.users);
}

Authors

Sönke Ludwig, Михаил Страшун

Copyright

© 2012-2013 RejectedSoftware e.K.

License

Subject to the terms of the MIT license, as written in the included LICENSE.txt file.