Web Api bir Web Servis mantığı ile çalışmaktadır. Hem Xml hem Datatable olarak bilgi verebilmektedir. Sınırsız sayıda parametre alarak çalışmaktadır. Bu sayede Xpoda’daki veriler başka bir yazılıma aktarılabilmektedir.
Wep Api kullanımına örnek olarak; X firmasının müşterileri verdikleri siparişlerin durumlarını görmek istemektedirler. Fakat bunu kendi sistemlerinde herhangi bir program içinde görmek istediklerinde Web Api çözüm sunmaktadır. X firması Web Api ile müşteriyle paylaşacağı datanın sql sorgusunu hazırlayıp müşteriye Web Servis Url’si ve Api bilgilerini paylaşarak kullanmalarına olanak sağlamaktadır.
Çözüm ortaklarımıza kendi kullanıcı bilgilerini paylaşacağımız bir Web Api örneği aşağıda verilmiştir. Web Api Xpoda Studio giriş sayfasında tanıtılmaktadır.
Wep Api butonuna tıklanarak aşağıda sayfa açılmaktadır.
Yukarıdaki örnekte User Info adında bir Web Api tanıtılmaktadır.
Parametre olarak $Param[0] parametresi beklenilmektedir.
Web Api sorguları için de parametre kullanım şekli; $Param[Parametre Sırası] şeklinde olmalıdır.
Çözüm ortaklarımıza Web Api bilgileri aşağıdaki gibi paylaşılıp, kullanmalarını sağlanmaktadır.
Web Api Url’si http://localhost:8085/Services/CustomerApi.svc
Web Api Url’si içindeki localhost:8085 bilgisi firmanın Xpoda Web Servisinin yayınlandığı Url olmalıdır.
Çözüm ortaklarımızın Web Api’yi kullanarak bilgi almaları için örnek kodlama aşağıdaki gibidir.
//Firma tarafından verilen Web Api Urlsi
var url = “http://localhost:8085/Services/CustomerApi.svc“;
var apiEndpoint = new EndpointAddress(url);
var service = new CustomerApiClient(GetDefaultBinding(), apiEndpoint);
//Web Api içinde istenilen parametreler ekleniyor.
var param = new string[1];
param[0] = “demo”;
//Web Api’den XML datalar alınıyor.
//Servis’in aldığı parametreler sırasıyla şöyledir.
//Kullanıcı Adı , Şifre , Api Id , Parametreler , Firma ID(Varsayılan -1)
var xmldata = service.GetDataXml(“demo”, “Demo2017”, 1, param, -1);
//Web Apiden Datatable datalar alınıyor.
var xmldata = service. GetDataDataTable(“demo”, “Demo2017”, 1, param, -1);
public static BasicHttpBinding GetDefaultBinding()
{
var myBinding = new BasicHttpBinding
{
MaxBufferPoolSize = 2147483647,
MaxBufferSize = 2147483647,
MaxReceivedMessageSize = 2147483647,
MessageEncoding = WSMessageEncoding.Text,
Name = “basicHttpsBinding”,
ReceiveTimeout = new TimeSpan(1, 0, 0),
SendTimeout = new TimeSpan(1, 0, 0),
ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas
{
MaxDepth = 2000000,
MaxStringContentLength = 2147483647,
MaxArrayLength = 2147483647,
MaxBytesPerRead = 2147483647,
MaxNameTableCharCount = 2147483647,
},
Security =
{
Mode = BasicHttpSecurityMode.TransportCredentialOnly,
Transport = { ClientCredentialType = HttpClientCredentialType.Windows }
}
};
return myBinding;
}