Python Rest Api Ödev

Başlatan tuncerrstm, 28 Haziran 2020 - 16:06:51

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

tuncerrstm

Merhabalar böyle bir ödev konusu verirdi fakat tam kavrayamadım konuyu yardımcı olabilecek arkadaş var mı acaba ? Ne yapmam gerekiyor.

Seçilen bir ülkede Covid19 virüsünün etkisi (toplam vaka sayısı, aktif vaka sayısı, ölüm sayısı, iyileşen
sayısı) üzerine günlük bazda ve toplam sayılar bazında grafiksel çizim yapabilen bir uygulama geliştiriniz. Bu
ödevi yapabilmek için derste öğrendikleriniz dışında aşağıdaki konuları da araştırıp öğrenmeniz gerekecektir:

Web Service, API, REST, JSON, XML gibi kavramlar hakkında temel düzeyde bilgi sahibi olmalısınız.
İnternet üzerinden Covid19 ile ilgili verileri elde etmek için uygun bir API bulmalısınız. https://covid19-apis.postman.com/ adresinde listelenen API'lerden birini seçebilirsiniz.
• Ben bunların içinden COVID19API (https://covid19api.com/) olanı kullandım (kullanım bilgisi).
Kullanacağınız programlama dili ile bir REST API üzerinden nasıl veri alabileceğinizi öğrenmelisiniz.
• Korkmayın, birkaç satırlık kod ile bu işlemi halledebileceksiniz. Doğru yerlerde araştırırsanız kısa
sürede veri çekmeyi öğrenirsiniz. Bazı API'lere erişim için bir anahtara sahip olmanız gerekse de
benim denediğim COVID19API anahtar istemiyor.
• Programınızda gerekli olan ülke isimlerini de API üzerinden elde edebilirsiniz:
https://api.covid19api.com/countries
• Türkiye'de ilk vaka görüldükten sonraki tüm günlerinin verisi için (11 Mart 2020 ve sonrası):
https://api.covid19api.com/total/dayone/country/turkey
• NOT: Yukarıdaki linkte 'turkey' yerine başka ülke adı verdiğinizde o ülkenin verisi gelecektir.
'/dayone' kısmını silerseniz; 22 Ocak 2020 tarihinden itibaren tüm günlerinin verisi gelir (Türkiye
için 11 Marta kadar ilgili veriler sıfır olacağından gereksiz kayıtlar olur). '/total' kısmını silerseniz
(/dayone kalacak); yine her ülkenin ilk vaka tarihinden itibaren gelir ama USA ve Australia gibi bazı
ülkeler için eyalet bazında (yani daha fazla) veri gelecektir. Bu durumda grafik gösteriminiz hatalı
görünür. Arada bir COVID19API sunucusundan veri alınamıyor, farklı bir API de tercih edebilirsiniz.
Elde ettiğiniz veriyi grafiksel olarak göstermek için ne yapmanız gerektiğini öğrenmelisiniz. Python ile
yapanlar bunun için 11. Hafta'nın son slaytında küçük bir örneğini verdiğimiz matplotlib.pyplot
kullanabilir: https://matplotlib.org/tutorials/introductory/pyplot.html
• Göstereceğiniz grafikler hakkında fikir vermesi için aşağıdaki adreslere göz atabilirsiniz:
https://www.worldometers.info/coronavirus/country/turkey/
https://en.wikipedia.org/wiki/COVID-19_pandemic_in_Turkey
Grafiksel gösterim haricinde tablolar da verebilirsiniz. Ödevin ucu açık, yani ne kadar çok istatistiksel
bilgi verirseniz, o kadar iyi not alırsınız. Tasarım ve kullanım kolaylığı da alacağınız notu etkileyecektir.
• Örneğin ülkeler bazında aşağıdaki linkte olduğu gibi sıralama tablosu da verebilirsiniz:
https://www.worldometers.info/coronavirus/#countries
• Bunun için tüm ülkelere ait sadece son gün verisine ihtiyacınız var:
https://api.covid19api.com/summary

91011

#1
Gayet açık neyi anlamadın ? Boşver bi dönem daha alırsın o zmaan anlarsın.
Tanrı konuşmaz, şeytan fısıldar...

Aaron

Merhaba. Oncelikle RESTful API'nin ne olduguna bir goz atmaniz gerekebilir. Sizden muhtemelen tum prensiplerin ogrenilmesi beklenmiyor.

Bu projede yapmaniz gereken sey oncelikle API uzerinden aktif edilecek (expose) olan uc noktalari (endpoint) belirlemek olacak. Toplam vaka sayisi, aktif vaka sayisi, olum sayisi, iyilesen
sayisi gibi bilgiler aslinda sizin kaynaklarinizin (resource) ne olacagini gostermekte.

Hocanizin onermis oldugu API ise bu bilgilere sahip ve bir API araciligi ile kullanicilara sunuluyor. Sizden bunun bir benzerini yapmaniz isteniyor hatta aynisini yapin diyor. Hocanizin size ornek olarak verdigi API'daki tum uc noktalari tuketerek (consume) uygulamanizda olusturacaginiz modelleri beslemeniz bekleniyor. Ornek API'yi sadece GET istedigi ile gezip donen cevapdaki tum bilgileri veritabanina kaydetmelisiniz.

Daha sora API ile bu kaynaklardaki bilgileri uc noktalar araciligi ile sunacaksaniz.

Flask + SQLAlchemy onerebilirim. Ama hizli bir sekilde arastirip ikisini de incelemeniz gerekecek.