Schnittstellenabschnitt für Zugriff auf REST-Service eines anderen Herstellers

In EGL können Sie mit dem folgenden Schnittstellenabschnitt auf den REST-Service eines anderen Herstellers zugreifen.

interface IRest
   function invokeGet(reqURL string in) returns(string)  
      {@getRest {uriTemplate="{reqURL}"}};
   function invokePost(reqURL string in, representation string in) returns(string)
      {@postRest {uriTemplate="{reqURL}"}};
   function invokePut(reqURL string in, representation string in) returns(string)
      {@putRest {uriTemplate="{reqURL}"}};
   function invokeDelete(reqURL string in, representation string in) returns(string) 
      {@deleteRest {uriTemplate="{reqURL}"}};
end

Wenn Sie diesen Schnittstellenabschnitt unverändert übernehmen, müssen Sie keinen neuen schreiben. Die erforderlichen Schritte zur Codierung der Serviceaufrufanweisung sind jedoch anders.

Im Folgenden ist ein Beispiel für einen asynchronen Zugriff aufgeführt, der in Rich-UI-Anwendungen vorkommen kann:
myVar IRest;
myResource String = ServiceLib.convertToJson(myRec);
call myVar.invokePost("http://www.example.com", myResource) 
    returning to myCallbackfunction;
Im Folgenden ist ein Beispiel für einen synchronen Zugriff aufgeführt, der anderswo auftreten kann:
myString STRING:
myVar IRest;
myResource String = ServiceLib.convertToJson(myRec);
myString = myVar.invokePost("http://www.example.com", myResource);
Unterschiede zwischen dem synchronen und asynchronen Zugriff:
Sie benötigen möglicherweise einen Funktionsprototyp, der über ein anderes Merkmal verfügt, wie beispielsweise eine DELETE-Operation, die keine Übergabe einer Darstellung erforderlich macht. In diesem Fall erstellen Sie einen vergleichbaren Schnittstellenabschnitt, ändern aber den Funktionsprototyp InvokeDelete oder fügen einen Prototyp mit einem anderen Namen hinzu. Beispiel für einen geänderten Prototyp:
function invokeDelete(reqURL string in) returns(string) 
   {@deleteRest {uriTemplate="{reqURL}"}};

Feedback