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 Web Api Test 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.
Visual Studio’ da proje içerisinde Servis References alanından Web Servisi referans edilir.
Referans işlemi sonrasında Web Api kullanarak bilgi alınması için örnek kodlama aşağıdaki gibidir.
Kodlama:
public void WebApiServis()
{
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. Burada sıralama önemlidir!!!
var param = new string[1];
//XPODA ile başlayan XPODA_CLIENT_USERS tablosundaki kullanıcıları almak için parametre tanımı yapılıyor.
param[0] = "XPODA";
//Servis’in aldığı parametreler sırasıyla şöyledir.
//Kullanıcı Adı , Şifre , Api Id , Parametreler , Firma ID(Varsayılan -1), Ticket (Bu parametre boş gönderilmeli)
//Web Apiden Datatable ile datalar alınıyor.
var data = service.GetDataDataTable("xpoda", "Xpoda123.", 4, param, 12290, "");
if (data != null)
{
DataTable dt = data.ResultData;
foreach (DataRow row in dt.Rows)
{
var rowdata = row.ItemArray;
}
}
//Web Api’den XML ile datalar alınıyor.
var xmldata = service.GetDataXml("xpoda", "Xpoda123.", 4, param, 12290, "");
}
// GetDefaultBinding() methodu
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;
}
}
Datatable Data Ekran Görüntüsü
Xml Data Ekran Görüntüsü