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 client implementation of I. |
Fields
Name | Type | Description |
---|---|---|
m_intf
|
RestInterface!I* |
|
m_requestFilter
|
RestInterfaceClient |
|
m_subInterfaces
|
staticMap!(RestInterfaceClient,Info.SubInterfaceTypes) |
Properties
Name | Type | Description |
---|---|---|
requestFilter
[get, set]
|
RestInterfaceClient |
An optional request filter that allows to modify each request before it is made.
|
Methods
Name | Description |
---|---|
request
|
Perform a request to the interface using the given parameters.
|
Aliases
Name | Description |
---|---|
Info
|
|
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 test()
{
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);
logInfo("First user name: %s", api .getName(0));
}
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.