Nedir?

REST Servisleri ile bağlantı kurmak için kullanılan servistir. 

<JsonInvoke Url="" InvokeType="Post" RequestNode="/*/Request" ResponseNode="/*/Response" ClearInto="False">
      <Headers />
</JsonInvoke>

Özellikler

 
Adı
Açıklama
 UrlRequest yapılacak remote web servis adresidir.
 ResponseNodeResponse olarak dönen objenin yazılacağı node adresidir.
 InvokeType

Request yapılırkan hangi http method kullanılacağını belirler. "Get" veya "Post" olabilir.

Veri alınması durumunda "Get", Veri gönderilmesi durumunda "Post" kullanılmalıdır.

 ClearInto

Var olan verinin silinip silinmeyeceği konusunda

 HeadersSOAP Header bilgisini geçmek için kullanılabilir, opsiyoneldir.
 RequestNode

Request yapılacak objenin tanımlı olduğu node adresi veya string içeriğidir.

 
Değer
Açıklama
 ValueCDATA  content veya Node adresi olabilir.

 

 

Örnek (Get Metodu)

JsonInvoke taskına verilen Url üst satırda SetVariable ile $(JsonUrl) değişkenine atanıyor. Geri dönecek olan yanıt Json/Response node 'u içerisine aktarılmaktadır.

  <SetVariable Name="$(JsonUrl)">
    <Value Culture="" Target="None">eval::/*/Baslatan/JsonUrl</Value>
  </SetVariable>
  <JsonInvoke Url="$(JsonUrl)" InvokeType="Get" RequestNode="Json/Request" ResponseNode="Json/Response" ClearInto="True" IsHeadersEncoded="False" IsSerialize="True" Timeout="120" ContentType="application/json" Accept="application/json" IsResultJson="True">
    <Headers />
  </JsonInvoke>

 

Örnek

<JsonInvoke Url="http://localhost/ebidocs/Notification/GetNotifiedDocumentsInfo" InvokeType="Post" RequestNode="/*/Request" ResponseNode="/*/Response" ClearInto="False">
      <Headers />
</JsonInvoke>
<ForEach Node="/*/Response/Response/NotificationList">
  <SetVariable Name="$(DocumentName)">
    <Value>eval::./DocumentName</Value>
  </SetVariable>
  <SetVariable Name="$(FieldName)">
    <Value>eval::./FieldName</Value>
  </SetVariable>
  <SetVariable Name="$(FieldDate)">
    <StringConcat>
      <DateTimePart Part="Day">
        <Value Target="Date">eval::./FieldDate</Value>
      </DateTimePart>
      <Value>.</Value>
      <DateTimePart Part="Month">
        <Value Target="Date">eval::./FieldDate</Value>
      </DateTimePart>
      <Value>.</Value>
      <DateTimePart Part="Year">
        <Value Target="Date">eval::./FieldDate</Value>
      </DateTimePart>
    </StringConcat>
  </SetVariable>
</ForEach>

Login ile birlikte örnek 

  <SetVariable Name="$(LoginURL)">
    <StringConcat>
      <Value Culture="" Target="None">$(APIURL)</Value>
      <Value Culture="" Target="None">auth/oauth2/token</Value>
    </StringConcat>
  </SetVariable>
  <Set Node="DYSAPI/Login/Request">
    <StringConcat>
      <Value Culture="" Target="None" IsCDATA="True"><![CDATA[username=]]></Value>
      <Value Culture="" Target="None">$(APIUser)</Value>
      <Value Culture="" Target="None" IsCDATA="True"><![CDATA[&password=]]></Value>
      <Value Culture="" Target="None">$(APIPassword)</Value>
      <Value Culture="" Target="None" IsCDATA="True"><![CDATA[&grant_type=password&client_id=]]></Value>
      <Value Culture="" Target="None">099153c2625149bc8ecb3e85e03f0022</Value>
    </StringConcat>
  </Set>
  <JsonInvoke Url="$(LoginURL)" InvokeType="Post" RequestNode="API/Login/Request" ResponseNode="API/Login/Result" ClearInto="False" IsHeadersEncoded="False" IsSerialize="False" Timeout="100" ContentType="application/x-www-form-urlencoded" Accept="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" IsResultJson="True">
    <Headers />
  </JsonInvoke>

Örnek Kullanımı

   <JsonInvoke Url="https://prod.holding.com.tr/payment/v1/get/Payment" InvokeType="Get" RequestNode="GetPayment/Request" ResponseNode="GetPayment/Response" ClearInto="True" IsHeadersEncoded="False" IsSerialize="True" Timeout="100" ContentType="application/json" Accept="application/json" IsResultJson="True">
    <Headers>
      <Header Key="Authorization">Basic Zm9ybS5lc2lnbmF0dXJlLmVndXZlbjo2bjFiQkJWUVdqNXE4Zngx</Header>
    </Headers>
  </JsonInvoke>

<Using Name="JsonInvoke" Type="EBI.ExtraFunctions.JsonInvoke,EBI.ExtraFunctions" />

Ayrıca Bakınız

WebInvoke