FaCiPa Serisi 2

Herkese yeniden merhaba!

Sizleri FaCiPa ile bir önceki yazımda tanıştırmıştım. Sunucu ve web taraflı detaylarına çok değinememiştim. Bu yazımda ise sizlere API ve mobil kodlama alanlarından bahsedeceğim. Ben Python programlama dili kullandığım için konu API olduğunda Flask kullanımını tercih etmiştim. Bu durum tamamen kişisel, dilerseniz Django gibi farklı çatılar da kullanabilirsiniz. Karar size ait ✨

Gerekli görüntü işleme aşamalarından sonra arka planda çalışan yüz felci tespit algoritması sonucu elimize bir durum verisi gelmektedir. Bunu states değişkeninde True veya False olarak almaktayız. Kullanıcıdan gelen görüntüyü analiz ederek test etmekteyiz. Burada elde ettiğimiz değişkenin asıl hedeflediğimiz mobil uygulamaya döndürülmesi en önemli aşamalardan birisidir.

API (Application Programming Interface), bir uygulamaya ait işlevlerin başka bir uygulamada da kullanılabilmesi için oluşturulmuş bir ara yüzdür. Bir API, iki uygulamanın birbiriyle konuşmasına izin veren bir yazılım aracısıdır. Diğer bir deyişle, size ait isteği, sağlayıcınıza talep eden ve ardından size yanıt gönderen habercidir. API, uygulamaların ve tanımların birbirinden ödün vermeden değişmesine izin veren uygulamalardan bağımsız işlevleri tanımlar. 

IONIC FRAMEWORK İLE MOBİL TABANLI UYGULAMA

Ionic, Cordova tabanlı çalışan native bir frameworktür. Native uygulama derken sizce neyden bahsediyoruz? Native frameworkler sayesinde tek tip kod ile Android, IOS, Windows Mobile ve BlackBerry gibi tüm platformlarda uygulama yazılmasını sağlayan bir sistemdir. Ionic, 2013 yılında Drifty Co.’dan Max Lynch, Ben Sperry ve Adam Bradley tarafından oluşturulan hibrit mobil uygulama geliştirme için eksiksiz bir açık kaynaklı SDK’dır 🔮

Bu proje için IONIC seçilmesinin sebeplerinden bir tanesi TypeScript kodlarının teknolojik açıdan çok gelişmiş olmasıdır. Aynı zamanda Html5, Css, JavaScript kodları sonucunda ortaya çıkarılan uygulamanın hibrit olması oldukça avantajlıdır. Yapılan Ionic projeleri çok temiz ve modüler bir şekilde inşa edilmiştir, bu nedenle bakım yapılabilir ve güncellenmesi kolaydır. Bu sebeple projemizin mobil alanında Ionic platformu tercih edilmiştir.

Benefits of Native Mobile App Development for Businesses

Yöntemler şematik olarak incelenmek istendiğinde aşağıdaki görseli unutmayalım.

Projede 2 ayrı bölüm mevcut olup görüntü işlemenin kullanılacağı Python ile OpenCV işlemleri ve mobil platforma dökülmesi için kullanılacak olan Ionic Framework tasarlanmıştır.

  1. Kullanıcı IONIC’te butona bastığında alınan Request işlemi ile Python’a görüntünün alınması ve işlenmesi için istek gönderilir.
  2. Sunucuya JSON olarak hastalık teşhisi için True veya False değer döndürülür. Ardından gerekli kontroller yaptırılır.
  3. Alınan JSON sonucu ve hastalık oranı IONIC platformuna geri bildirim yapılır. Bu işlem için ise API(Application Programming Interface) kullanılır.
  4. Request ve Response işlemlerinden sonra OpenCv’den alınan Json verileri parse edilir.

API Sunucu Haberleşmesi

Projemizde kullandığımız API için seçilen tür client-server haberleşmesi olduğu için REST (REpresentational State Transfer) API olup kullandığı servis için ise Flask web çatısı seçilmiştir.

Temsili durum aktarımı (REST), web hizmetleri oluşturmak için kullanılacak bir dizi kısıtlamayı tanımlayan bir yazılım mimari tarzıdır. RESTful Web services olarak adlandırılan REST mimari tarzına uyan Web Hizmetleri, İnternet’teki bilgisayar sistemleri arasında birlikte çalışabilirlik sağlar. RESTful Web Hizmetleri, istekte bulunan sistemlerin, tekdüzen ve önceden tanımlanmış bir durum bilgisi olmayan işlem kümesi kullanarak Web kaynaklarının metinsel temsillerine erişmesine ve bunları değiştirmesine izin verir [5]. SOAP Web hizmetleri gibi diğer Web Hizmetleri türleri, kendi keyfi işlem kümelerini ortaya çıkarır.[6]

REST sunucu kodları yazılarak mobil platform ile görüntünün işlendiği PyCharm arasındaki haberleşme sağlandı.

REST mimarisindeki önemli noktalardan biride her HTTP Request ’inde yapılması istenilen işlemin HTTP metotlarıyla ifade edilmesidir. POST, PUT, DELETE ,GET gibi. Böylece Proxy ihtiyacı ortadan kalkmış oluyor ve platform bağımsız yapılar kurmak kolaylaşıyor. Şuanki modern uygulamalarda bu metotları harfiyen kullanmak bir zorunluluk olmasa da standartlara uymak, işlem tutarlılığı ve güvenliği açısından önemlidir. Sunucu kodlamasında bu metotlar kullanılarak sistem haberleşmesi projede sağlanacaktır.

REST’ in Avantajları 🛡

  • Hafiftir, kolay extend edilebilir.
  • Gelen, giden data boyutu SOAP ile karşılaştırıldığında çok ufaktır.
  • Tasarlaması kolaydır ve implementasyonu kolaydır, herhangi bir ekstra araçlara ihtiyacı yoktur.
  • HTTP üzerinden çalışır, platform bağımsızdır.

Proje için gerekli olan tüm ön bilgileri verdiğime göre bir sonraki yazıda tamamen kodlamaya hazırız 🎉

REFERANSLAR

  1. https://www.webimonline.com/api
  2. https://blog.koddit.com/yazilim/api-nedir-ne-ise-yarar-orneklerle-inceleyelim/
  3. From Wikipedia, The free encyclopedia, Ionic (mobile app framework), October 2020.
  4. https://www.newagesmb.com/blog/benefits-native-mobile-app-development.
  5. From Wikipedia, The free encyclopedia, Representational state transfer, September 2020.
  6.  “Web Services Architecture”. World Wide Web Consortium. 11 February 2004. 3.1.3 Relationship to the World Wide Web and REST Architectures. Retrieved 29 September 2016.
  7. https://www.codementor.io/@parths007/writing-unit-tests-for-rest-apis-in-python-ge8wmbofg.
  8. https://denizirgin.com/rest-ve-restful-web-servis-kavramı-30bc4400b9e0?gi=fe5bf1fa3056.

6 thoughts on “FaCiPa Serisi 2”

  1. agen slot says:

    I merely wanted to compose down a quick phrase to say thanks to be able to you for anyone wonderful guidelines and hints you will be exhibiting on this site.

    1. buseyarentekin says:

      Thank you very much for your nice thought.

  2. homepage says:

    Admiration for really being careful and also for selecting on certain marvelous guidelines most people actually would like to be aware associated with.

    1. buseyarentekin says:

      Thank you very much for your valuable comment. I wish you a good reading ✨

  3. At this time it seems like BlogEngine is the top blogging platform available right now. (from what I’ve read) Is that what you are using on your blog?

    1. buseyarentekin says:

      Our blog is currently under renewal. Please wait ✨

Leave a Reply

Your email address will not be published. Required fields are marked *