• Buradasın

    Python ve Flask ile REST API Oluşturma Eğitimi

    youtube.com/watch?v=5FVcssXZFjE

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan Python ve Flask kullanarak REST API oluşturma eğitimidir. Eğitmen, adım adım kod yazarak ve Postman aracılığıyla test ederek API geliştirme sürecini göstermektedir.
    • Video, "to-do API" örneği üzerinden beş temel endpoint'in (GET to-dos, GET to-do by ID, POST to-do, PUT to-do, DELETE to-do) nasıl oluşturulacağını kapsamaktadır. Eğitmen önce API'nin temel yapılandırmasını göstermekte, ardından her endpoint için gerekli kodları yazarak ve test ederek ilerlemektedir.
    • Eğitim sonunda, API'nin temel fonksiyonlarının tamamlandığı belirtilmekte ve gelecek videolarda veritabanı, dosya, CSV dosyası ve doğrulama gibi özelliklerin ekleneceği ifade edilmektedir. Flask'ın request nesnesi kullanılarak kullanıcı verilerinin nasıl işleneceği ve hata durumlarının (404) nasıl ele alınacağı da detaylı olarak anlatılmaktadır.
    00:00Flask ile API Oluşturma Tanıtımı
    • Bu videoda Python ve Flask kullanarak bir API oluşturma süreci gösterilecek.
    • Flask, Python için bir web framework olup web API veya web backend oluşturmak için kullanılabilir.
    • Oluşturulacak API "to-do API" olarak adlandırılacak ve to-do verilerini çekme, ID'ye göre to-do verilerini çekme, yeni to-do verileri ekleme, mevcut to-do verilerini güncelleme ve mevcut to-do verilerini silme işlemlerini içerecek.
    00:37API Endpointleri ve Postman Kullanımı
    • API'nin beş endpointi olacak: GET to-dos, GET to-do by ID, POST to-do, PUT to-dos ve DELETE to-do.
    • Postman kullanılarak API'ye çağrılar yapılabilir.
    • API yerel olarak 127.0.0.1:5000 portunda çalıştırılıyor.
    01:00GET to-dos Endpointi
    • Tüm to-do verilerini çekmek için "/to-dos" endpointine GET çağrısı yapılır.
    • Her to-do verisi JSON formatında bir liste olarak döndürülür ve her JSON verisi üç anahtar içerir: done (yapıldı mı), id (kimlik) ve task (görev).
    • ID'ye göre belirli bir to-do verisi çekmek için "/to-dos/id" endpointine GET çağrısı yapılır.
    02:07Hata Yönetimi ve POST Çağrısı
    • Mevcut olmayan bir ID için GET çağrısı yapıldığında "To-do not found" hatası ve 404 status kodu döndürülür.
    • Yeni bir to-do verisi eklemek için "/to-dos" endpointine POST çağrısı yapılır ve JSON formatında "task" anahtarı ile veri gönderilir.
    • POST çağrısı başarılı olduğunda 201 Created status kodu döndürülür ve yeni to-do verisi listelenir.
    03:14PUT ve DELETE İşlemleri
    • Mevcut bir to-do verisinin durumunu güncellemek için "/to-dos/id" endpointine PUT çağrısı yapılır.
    • PUT çağrısı başarılı olduğunda 200 response kodu döndürülür ve to-do verisinin durumu güncellenir.
    • Mevcut bir to-do verisini silmek için "/to-dos/id" endpointine DELETE çağrısı yapılır ve 200 OK response kodu ile "To-do deleted" mesajı döndürülür.
    04:33Flask Kurulumu ve Temel Yapılandırma
    • Flask kurulumu için terminalde "pip install flask" komutu kullanılır.
    • Flask uygulaması oluşturmak için "app = Flask('to-do')" kodu yazılır.
    • Uygulamayı çalıştırmak için "app.run(debug=True)" komutu kullanılır, ancak üretim ortamında debug=True değeri false olarak ayarlanmalıdır.
    07:19İlk Endpoint Oluşturma
    • İlk endpoint olarak "/to-dos" endpointi oluşturulur.
    • Endpoint için "def get_to_dos()" fonksiyonu yazılır ve boş bir JSON listesi döndürülür.
    • Flask'ta endpoint'i tanımlamak için "@app.route('/to-dos')" decorator kullanılır.
    08:31Endpoint'i Test Etme
    • Uygulama ilk çalıştırıldığında konsolda bir URL görüntülenir, bu URL API'nin host'udur.
    • Postman'da bu URL'ye "/to-dos" eklenerek GET çağrısı yapıldığında boş bir JSON listesi döndürülür.
    • Endpoint'i sadece GET çağrıları için kullanmak için "methods='GET'" parametresi kullanılabilir.
    09:46Flask API'de GET Yöntemi ile Tüm Görevleri Getirme
    • API'de bir fonksiyonun hangi yöntemlerle çağrılacağını belirtmek için "methods" parametresi kullanılır.
    • İlk olarak "methods" boş bırakıldığında, Postman'da "GET" yöntemi ile endpoint'e erişim sağlanamaz.
    • "methods" parametresine "GET" eklenerek, sadece "GET" yöntemiyle "to-dos" endpoint'ine erişim sağlanabilir.
    10:28Veri Döngüsü ve JSON Listesi Oluşturma
    • API'ye veri döndürmek için bir "data" değişkeni oluşturulur ve bu değişken bir sözlük olarak tanımlanır.
    • Sözlükte her anahtar (ID) için bir değer (JSON) bulunur ve bu değerde "task" (görev açıklaması) ve "done" (durum) anahtarları vardır.
    • "response" değişkeni boş bırakılıp, "for key, value in data.items()" döngüsü ile her veri için "response.append(temp)" ile bir liste oluşturulur.
    13:53GET ID ile Belirli Görevi Getirme
    • İkinci endpoint olarak "GET /to-dos/id" oluşturulur ve bu endpoint'e bir ID parametresi gönderilir.
    • URL'de dinamik kısım için "angular basis" kullanılır ve veri tipi "int" olarak belirtilir.
    • Eğer istenen ID veri setinde yoksa, "if id in data" koşulu ile kontrol edilir ve "else" bloğu içinde "return {'error': 'To do not found'}" ile hata mesajı döndürülür.
    18:28Hata Durumunda Durum Kodu Ayarlama
    • Hata durumunda durum kodu 200 olarak döndürülürken, doğru durum kodu 404 olmalıdır.
    • "return data, status" şeklinde kod düzenlenerek hata durumunda 404 durum kodu döndürülür.
    • Son olarak "POST /to-dos" endpoint'i oluşturulacak ve bu endpoint'e JSON veri gönderilerek yeni görev eklenecektir.
    20:03Flask ile POST Yöntemi ile Yeni Veri Ekleme
    • Flask'ta GET all to-dos fonksiyonundan kopyalanıp POST yöntemi ile değiştirilerek yeni bir fonksiyon oluşturulabilir.
    • Flask, request nesnesi ile kullanıcıdan gelen JSON verilerini kabul eder.
    • POST fonksiyonunda, request.getjson() kullanılarak kullanıcıdan gelen veriler JSON formatında alınabilir.
    21:14Yeni Veri Oluşturma ve Kaydetme
    • Yeni bir to-do verisi için bir dictionary oluşturulabilir ve bu dictionary'de task, done status gibi anahtarlar bulunabilir.
    • Yeni to-do'nun ID'si, mevcut verilerin uzunluğuna 1 eklenerek belirlenebilir.
    • Yeni to-do verisi, mevcut verilere eklenerek yeni bir ID ile kaydedilir ve 201 status kodu ile JSON formatında döndürülür.
    23:32POST Fonksiyonunun Test Edilmesi
    • Program çalıştırıldıktan sonra GET to-dos endpoint'i ile mevcut veriler görüntülenebilir.
    • POST endpoint'i ile yeni bir to-do oluşturulabilir ve ID'si otomatik olarak artar.
    • ID endpoint'i ile belirli bir to-do'nun detaylarına erişilebilir.
    25:26PUT Yöntemi ile Veri Güncelleme
    • PUT yöntemi ile mevcut bir to-do'nun güncellenmesi için yeni bir fonksiyon oluşturulabilir.
    • PUT fonksiyonu, GET to-do by ID fonksiyonundan kopyalanıp PUT yöntemi ile değiştirilebilir.
    • PUT fonksiyonunda, önce mevcut to-do'nun varlığı kontrol edilir, yoksa 404 Not Found hatası döndürülür.
    27:19PUT Fonksiyonunun Kodlanması
    • PUT fonksiyonunda, mevcut to-do'nun verileri (task ve done status) güncellenir.
    • Kullanıcıdan gelen request.getjson() ile gelen veriler, request.get() ile kontrol edilir ve mevcut değerlerle karşılaştırılır.
    • Kullanıcı yeni bir değer göndermezse, mevcut değerler korunur ve sadece ID güncellenir.
    30:06Flask ile To-Do API'si Güncelleme İşlemi
    • PUT metodu ile to-do API'sinde belirli bir ID'ye sahip to-do'nun durumunu (done) true olarak ayarlayabilirsiniz.
    • Güncelleme işlemi sırasında to-do'nun mevcut değeri değiştirilebilir, örneğin "learn python" değeri "learn python and flask" olarak güncellenebilir.
    • Eğer güncellenecek ID mevcut değilse, API "to-do not found" hatası döndürür.
    31:07Flask ile To-Do API'si Silme İşlemi
    • Delete fonksiyonu oluşturulup, belirli bir ID'ye sahip to-do'nun silinmesi sağlanır.
    • Silme işlemi sırasında, eğer ID mevcut değilse bile "to-do deleted successfully" mesajı döndürülür.
    • Silme işlemi sonrası, silinen ID'ye sahip to-do artık API'de bulunamaz.
    33:21Flask ile To-Do API'si Geliştirme Önerileri
    • API'ye statik veri yerine veritabanı eklenebilir.
    • CSV dosyası gibi dosya tabanlı veri depolama yapılabilir.
    • Authentication ve veri doğrulama gibi özellikler de eklenebilir.
    33:47Video Kapanışı
    • Bu video, Flask kullanarak tam bir API oluşturmayı göstermek amacıyla hazırlanmıştır.
    • İzleyicilerden kanala abone olmaları ve yorum yapmaları istenmektedir.
    • Gelecek videolarda bu API'ye daha fazla özellik eklenecektir.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor