Xml Dönen Bir Web Apiyi Çağırmak
-
Xml döndüren bir web api var bunu nasıl çağırmalıyım sizce.Asenkron olarak mı çağırmak lazım yoksa senkron olarak mı , 3-4 farklı örnek buldum ama hep farklı farklı.Birde xml i kolayca parçalamak için ne kullanıyorsunuz.
Örnek kod vs yada link paylaşırsanız sevinirim.
-
Kodu hangi dilde geliştiriyorsun? Asenkron ve Senkron çağırmaktan kastını merak ettim?
-
Hangisi işini görüyor hocam ? Senkronizasyon programın akışına göre değişir.
Örneğin Sen bir post yaparsın cevabı gelmeden programın akışını dallandırmazsan Senkron yapman gerekiyor. Şayet Dönen değer programın akışına etki etmiyorsa Asenkron yapabilirsin.
Örneğin;
Giriş uygulamasını Senkron yazmak zorundasın çünkü Sonuca göre programın yönünü belirleyeceksin.Fakat Mesaj ugulaması yapıyorsan. Kullanıının profil fotoğrafını asenkron olarak çekebilirsin. Direkt olarak görmesi gerekmez kişinin zorunluluk değildir. Yada Mesajı görmese de olur (Belli bir süre).
Anlatabildi isem ne mutlu bana.
-
Dil C# hocalar.
@MhmdAlmz haklısın senaryo üzerine göre değişir.Soruyu çok düşünmeden sormuşum :) Senkron olarak yapacağım şimdilik.
@kenan_tok hocam yani web uygulamasına 1 request geldiğinde o requesti taşıyan thread bir web api çağrısı gördüğünde ne yapsın;
a) Kendisi o kod bloğuna girsin sonucu beklesin.Sonra devam etsin.
b) Bi thread yaratsın, bu yaratılan thread web api sorgusunu yapsın ve sonucu beklesin.Bizim asıl threadde sonucu beklemeden yoluna devam etsin.
Asenkron ve senkron olayını kastettim yani.
System.Xml.Linq.XDocument sınıfı ile xml i parçalasam olur sanırım
-
Hannibal_King bunu yazdı
Dil C# hocalar.
@MhmdAlmz haklısın senaryo üzerine göre değişir.Soruyu çok düşünmeden sormuşum :) Senkron olarak yapacağım şimdilik.
@kenan_tok hocam yani web uygulamasına 1 request geldiğinde o requesti taşıyan thread bir web api çağrısı gördüğünde ne yapsın;
a) Kendisi o kod bloğuna girsin sonucu beklesin.Sonra devam etsin.
b) Bi thread yaratsın, bu yaratılan thread web api sorgusunu yapsın ve sonucu beklesin.Bizim asıl threadde sonucu beklemeden yoluna devam etsin.
Asenkron ve senkron olayını kastettim yani.
System.Xml.Linq.XDocument sınıfı ile xml i parçalasam olur sanırım
Hocam kullandığın dil . NET'miş, beni aşıyo
-
Ek olarak, arkadaşlar, konusu açılmışken konuşalım.
Javascript'te "program devam ede, ben yeni thread ile devam edecem " der ıse kışı, setTimeout, setInterval fonksionunu kullanabılırfunction c() {console.log('c');}
function k() {console.log('k');}
function m() {console.log('m');}c();
setTimeout(function() {k();},0);
m();Mesela bu kodda, c ve daha sonra k fonksionları çalışo, daha sonra k fonsionu çalışıo. Yeni thread açmış olduk. loop ıstıo ıse o zaman setInterval kullanılıo
-
kenan_tok bunu yazdı
Ek olarak, arkadaşlar, konusu açılmışken konuşalım.
Javascript'te "program devam ede, ben yeni thread ile devam edecem " der ıse kışı, setTimeout, setInterval fonksionunu kullanabılırfunction c() {console.log('c');}
function k() {console.log('k');}
function m() {console.log('m');}c();
setTimeout(function() {k();},0);
m();Mesela bu kodda, c ve daha sonra k fonksionları çalışo, daha sonra k fonsionu çalışıo. Yeni thread açmış olduk. loop ıstıo ıse o zaman setInterval kullanılıo
Nasıl yani hocam ?
-
.net api si ise hocam projene eklendiginde sana zaten otomatik olarak asenkron-senkron yapilariyla birlikte olusturuyor. .net api si olsun ya da olmasin wsdl alabiliyorsan silverlight in bir tool u ile (slsvcutil) proxy olusturabilirsin ve servise bu sekilde erisebilirsin. Proxy class larinda hakeza asenkron metodlar oluyor.
Ben asenkron metod cagirirken task kullaniyorum hocam ve taskcompletion eventi bana islemin tamamladigina dair sonuc dönderiyor, onu da task olarak geri yollayabiliyorum.
http://www.levibotelho.com/development/async-processes-with-taskcompletionsource/
bu makale sana yardimci olacaktir hocam.
xml yerine json döndermek daha kolay olabilir ama xml üzerinden gitmek zorundaysan en mantiklisi xml serialize-deserialize islemi yapmak hocam. (eger dönen structure hep ayniysa)
https://stackoverflow.com/a/42276676
bu sekilde gelen degerleri object olarak alabilirsin (xml yapisina uygun bir sinif olusturursun hocam, dönen xml i deserialize edersin (buradaki örnekle daha iyi anlarsin https://stackoverflow.com/questions/364253/how-to-deserialize-xml-document )
kolay gelsin
-
@unbalanced hocam yine şov yapmissin. Çok teşekkürler açıklamalar için. Ayrica c# ile asenkron programlama ile ilgili bildigin guzel dokuman ,makale vs falan varsa paylasirsan sevinirim.Kendim de arastiricam. Ama daha iyi oturmasi icin farkli farkli kaynaklardan olurda guzel olur.
-
MhmdAlmz bunu yazdıkenan_tok bunu yazdı
Ek olarak, arkadaşlar, konusu açılmışken konuşalım.
Javascript'te "program devam ede, ben yeni thread ile devam edecem " der ıse kışı, setTimeout, setInterval fonksionunu kullanabılırfunction c() {console.log('c');}
function k() {console.log('k');}
function m() {console.log('m');}c();
setTimeout(function() {k();},0);
m();Mesela bu kodda, c ve daha sonra k fonksionları çalışo, daha sonra k fonsionu çalışıo. Yeni thread açmış olduk. loop ıstıo ıse o zaman setInterval kullanılıo
Nasıl yani hocam ?
Kodun gidişatı, c(); k(); m(); olmasına rağmen, gidişat c(); m(); k(); olarak çalışıo. k() fonksonu, 0mili sonra çalışmasına rağmen, m'den sonra çalışıo
EK olarak, k'nın çalışması tamamen içinde bulunduğu setTimeout fonksionuna göre şekil alıo, bununla birlikte k fonksionundan kodun diğer elemanlrına erişim var.
Thread'in hangi ozelligi yök şimdi bu kodda