Merhaba,
Son günlerde İstanbul Büyükşehir Belediyesi Açık Veri Portali‘ni açtı ve İBB içerisindeki verileri ulaşılabilir hale getirdi. Bunun yanında eğer istediğimiz bir veri seti var ise bunu İBB’ye iletebileceğimizi ve mümkünse veriyi açacaklarını söylemişler. Bence harika bir gelişme 🙂
Temelde 5 adet kategori açılmış
Hat, Durak, Güzergah API‘ini kullanarak neler yapabiliriz inceleyelim.
API dökümanını linkten inceleyebilirsiniz.
Öncelikle Visual Studio üzerinde yeni bir solution açarak başlayalım. Daha sonra solution içerisine api klasorü açarak, ASP.NET Core 3.1 API projesi ekleyelim.
Örneğimizin sonunda mobil uygulama geliştireceğimiz için İBB’nin bize sunduğu SOAP servisini Xamarin uygulamalarımızda direkt kullanamıyoruz. (Bazı yöntemler var fakat kesinlikle önermiyorum) Bu yüzden SOAP servisi ASP.NET Core 3.1 ile tüketip mobil’e hizmet verebilecek bir API yazacağız.
Sıradaki adım ise SOAP servisi API projemize ekleyelim.
Add Connected Service -> Microsoft WCF Web Service Reference Provider
4 methodu olan güzel bir servis çıktı karşımıza. Burada bizi güzel şeyler karşılıyor. İBB’deki developer arkadaşlar json tipinde dönüş veren overload methodlar geliştirmiş 🙂
Xamarin.Forms ve ASP.NET Core ile çalışırken modellerimi de netstandart class library ile ortaklaştırabilirim. Son geldiğimiz durumda aşağıdaki gibi bir solution explorer görüntüsü olacak.
Şimdilik durakları getiren api yazsak ve mobilde bu api tüketelim. Ek olarak mobilden seçilen durağı haritada gösterme işlemi de yaparsak ilk örnek için yeterli olur diye düşünüyorum.
Hızlıca TerminalController classımızı yazalım..
[Route("api/[controller]")] [ApiController] public class TerminalController : ControllerBase { private readonly WebService1Soap _lineStopRoute; public TerminalController(WebService1Soap lineStopRoute) { _lineStopRoute = lineStopRoute; } [HttpGet] public async Task<ActionResult<string>> Get() { var result = await _lineStopRoute.GetGaraj_jsonAsync(new GetGaraj_jsonRequest()); return Ok(result.Body?.GetGaraj_jsonResult); } }
Çok küçük bir geliştirme ile direkt sonuca ulaştık!
Şimdi geliştirdiğimiz bu API Azure üzerinde host edip, mobil uygulamamız üzerinden tüketelim.
Solution sağ tık -> Publish
Hemen test edelim 🙂
Sıra geldi mobil uygulamamızı geliştirmeye.
- Converters
- MainPage içerisinde kullanacağım Grid için visible kontrolü yaptığım converter
- Pages
- Uygulamanın sayfalarını koyduğum klasör
- Provider
- Geliştirdiğimiz web servis ile haberleşmeyi sağlayacağımız yardımcı HttpClient sınıfı
Geliştirdiğimiz yardımcı API katmanı ile kolay bir şekilde terminal listesine ulaşabildim.
NavigationMode Walking seçtiğim için icon, en iyi route seçimi vs Walking seçeneğine göre gelecek..
Emulatordeki bir hatadan dolayı map bir türlü açılmadı. Tam map gösterimi yapamadığım için kusura bakmayın. Crash olup durdu 🙂
API ve Mobil uygulama kaynak kodları için : https://github.com/ozaksuty/IBBLineStopRoute
Yorum Gönder