• Buradasın

    Node.js ve Express ile REST API Geliştirme Eğitimi

    youtube.com/watch?v=Bfxh5lYbg0g

    Yapay zekadan makale özeti

    • Bu video, Berkantkaya tarafından sunulan bir yazılım eğitim içeriğidir. Eğitmen, backend geliştirme konusunda içerik üretmeye başladığını belirtmektedir.
    • Eğitim, Node.js, Express ve MongoDB kullanarak basit bir REST API'nin nasıl oluşturulacağını adım adım göstermektedir. İçerik, kullanıcı kayıt (register), giriş (login), ürün ekleme, güncelleme, silme ve detay görüntüleme gibi temel CRUD işlemlerini kapsamaktadır. Video, proje yapısının oluşturulmasından başlayarak, Express kurulumu, paket yükleme, klasör yapısı oluşturma, MongoDB entegrasyonu, JWT token oluşturma ve middleware ekleme gibi konuları kapsamaktadır.
    • Eğitimde ayrıca kullanıcı doğrulama sistemi, veritabanı modeli oluşturma, şifre hashleme, token kontrolü ve search arama işlemleri gibi detaylı konular ele alınmaktadır. Tüm işlemler, temiz ve düzenli kod yazma prensipleri kapsamında Postman ile test edilmektedir.
    00:01REST API Projesi Tanıtımı
    • Berkantkaya, Node.js, Express, MongoDB ve JWT teknolojilerini kullanarak bir REST API oluşturmayı planlıyor.
    • Videoda kullanıcı kaydı, giriş, ürün güncelleme, oluşturma, silme, detay görüntüleme ve arama filtreleme gibi işlemler gösterilecek.
    • Backend ve frontend tarafında bol videolar gelecek.
    01:01Proje Hazırlığı
    • "app" adında bir klasör oluşturulup, npm init ile package.json dosyası oluşturuluyor.
    • Express, CORS, nodemon, JWT, bcryptjs, mongoose ve dotenv paketleri kuruluyor.
    • Index.js dosyasında Express ve CORS import edilerek bir app oluşturuluyor.
    03:35Server Ayarları
    • Server'ın 5000 portunda çalışması için gerekli ayarlar yapılıyor.
    • Ana sayfaya gelen isteklere "deneme deneme" mesajı dönen bir route ekleniyor.
    • nodemon paketi kullanılarak npm start komutu ile otomatik olarak server'ın yeniden başlatılması sağlanıyor.
    05:46Yapılandırma ve Klasör Yapısı
    • .env dosyası oluşturulup port ve MongoDB URL'i gibi ayarlar buraya yazılacak.
    • dotenv paketi kullanılarak .env dosyasındaki değerler kullanılabilecek şekilde yapılandırılıyor.
    • Models, routes, controllers ve middleware adında klasörler oluşturuluyor.
    08:20MongoDB Entegrasyonu
    • Config klasörü altında database.js dosyası oluşturulup MongoDB bağlantısı için gerekli kodlar yazılıyor.
    • Mongoose kullanılarak MongoDB bağlantısı kuruluyor.
    • .env dosyasından alınan MongoDB URL'si kullanılarak veritabanına bağlantı sağlanıyor.
    12:25Express.js ile Router Oluşturma
    • Tüm işlemler klasörler içerisinde parçalanmalı, böylece daha temiz ve clean bir kod yazılabilir.
    • Express.js kullanılarak bir router oluşturulup, register ve login işlemleri için post istekleri yapılabilecek şekilde ayarlanmalıdır.
    • Router, register ve login fonksiyonlarını çağıracak şekilde yapılandırılır ve ardından dışarı aktarılır.
    14:32Controller ve Model Oluşturma
    • Register ve login fonksiyonları, request ve response parametrelerini alacak şekilde controller dosyasında oluşturulur.
    • Veritabanı işlemleri için bir model oluşturulur ve mongoose kütüphanesi kullanılarak schema tanımlanır.
    • Schema'da username, email, password ve date alanları tanımlanır; email alanı unique özelliği ile işaretlenir.
    17:58Register İşlemi
    • Register işlemi için kullanıcıdan username, email ve password bilgileri alınır.
    • Express.js'te JSON verilerini işlemek için app.use(express.json()) ve app.use(express.urlencoded({ extended: true })) ayarları yapılır.
    • Register işlemi sırasında veritabanında aynı email'in olup olmadığı kontrol edilir, varsa hata mesajı döndürülür.
    21:52Şifre Kontrolü ve Hashleme
    • Şifrenin minimum 6 karakterden oluşması kontrol edilir, aksi takdirde hata mesajı döndürülür.
    • Şifre güvenliği için bcrypt kütüphanesi kullanılarak şifre hashlenir.
    • JWT kütüphanesi kullanılarak token oluşturulur ve bu token frontend tarafına döndürülür.
    25:40Token Oluşturma ve Register İşlemi
    • Token oluşturulduktan sonra gerekli işlemleri yapmak için bir JSON dönüşü yapılacak.
    • Register işlemi için bir token oluşturuldu ve başarılı durumunda JSON dönüşü yapılacak.
    • Hata durumunda message olarak bir dönüş yapılacaktır.
    26:51Login Fonksiyonu Oluşturma
    • Register ile birlikte login olayı oluşturulacak ve ikisi ortak olarak test edilecek.
    • Login fonksiyonu asenkron olacak ve try-catch bloğu ile çalışacak.
    • Login için dışarıdan email ve password alınıp, veritabanında email'e göre kullanıcı aranacak.
    28:16Login İşlemi Detayları
    • Kullanıcı bulunamazsa 500 status kodu ve "Böyle bir kullanıcı bulunamadı" mesajı dönecek.
    • Bulunan kullanıcı ile dışarıdan gelen password karşılaştırılacak, eşleşmezse "Parolanız yanlış" mesajı dönecek.
    • Doğru giriş yapıldığında token oluşturulacak ve kullanıcı bilgileri ile birlikte dönecek.
    31:25Fonksiyonları Kullanma ve Test Etme
    • Register ve login fonksiyonları export edilerek controllers içerisinden import edilecek.
    • Index.js dosyasında route'lar import edilerek ana dizin içerisinde kullanılacak.
    • Postman uygulaması ile register ve login işlemlerinin test edileceği post istekleri yapılacak.
    34:12Postman ile Test İşlemleri
    • Register işlemi için post isteği yapılarak username, email ve password gönderilecek.
    • Parola en az 6 karakter olmalı, aksi halde hata dönecek.
    • Login işlemi için doğru email ve password gönderildiğinde başarılı giriş yapılacaktır.
    37:22Gelecek İşlemler
    • Post paylaşım, yayınlama, delete ve update gibi işlemler için yeni alanlar oluşturulacak.
    • Root, model ve controller klasörlerine post.js dosyaları eklenecek.
    • Tüm postların listelenmesi için router.get() kullanılacak.
    38:33API Rota Tanımlama
    • GetPostURL'ine yönlendirme olduğunda get ve post işlemlerinin döneceği bir controller oluşturulacak.
    • GetDetail, GetUpdate, DeletePost gibi işlemler için id numarasına göre yönlendirme yapılacağı belirtiliyor.
    • Filter ve search işlemleri en son eklenmesi planlanıyor.
    40:31Model Oluşturma
    • Model için mongoose kullanılarak bir post schema oluşturuluyor.
    • Post schema'ya name (string, required, trim), description (string, required), stock (number, default: 0) ve date (date, default: new Date) alanları ekleniyor.
    • Model oluşturulduktan sonra export ediliyor.
    43:32Controller İşlemleri
    • Controller'da post modeli import ediliyor ve dışarıdan gelen request body üzerinden yeni bir post oluşturuluyor.
    • CreatePost fonksiyonu asenkron olarak yazılarak, başarılı durumda 201 status kodu ve yeni post bilgisi döndürüyor.
    • GetPost, UpdatePost ve DeletePost fonksiyonları oluşturuluyor ve gerekli işlemler için düzenlemeler yapılıyor.
    47:15Controller İşlemlerinin Tamamlanması
    • GetPost fonksiyonu tüm postları bulmak için kullanılıyor ve 200 status koduyla döndürülüyor.
    • GetDetailPost fonksiyonu dışarıdan gönderilen id numarasına göre postu bulmak için kullanılıyor.
    • UpdatePost fonksiyonu id numarasına göre postu güncellemek için kullanılıyor ve new: true parametresi ile güncelleniyor.
    49:00Silme İşlemi ve Export İşlemleri
    • DeletePost fonksiyonu id numarasına göre postu silmek için kullanılıyor ve başarılı bir şekilde silme işlemi mesajı döndürülüyor.
    • Tüm controller fonksiyonları export ediliyor.
    • Ana dizindeki index.js dosyasına controller fonksiyonları import ediliyor ve kullanıma hazır hale getiriliyor.
    51:12API'de Post Oluşturma İşlemi
    • Bir post işlemi için name ve description alanları oluşturuluyor, diğer alanlar zorunlu değil ve varsayılan değerleri sıfırdır.
    • Post işlemi yapıldıktan sonra veritabanında yeni bir post modeli oluşturuluyor ve detayları görüntülenebiliyor.
    • Oluşturulan post'a göre detay görüntüleme ve güncelleme işlemleri de yapılabiliyor.
    53:38API'ye Arama ve Filtreleme Ekleme
    • API'ye search ve filter parametreleri eklenerek daha fazla işlev eklenmesi planlanıyor.
    • Search fonksiyonu için asenkron bir fonksiyon oluşturuluyor ve dışarıdan request ve response alması planlanıyor.
    • Arama işlemi için query parametresi kullanılıyor ve dışarıdan gelen search değeri bu parametre üzerinden alınıyor.
    57:38Arama İşleminin Gerçekleştirilmesi
    • Arama işlemi için MongoDB'de filtreleme yapılıyor ve title alanına göre arama yapılıyor.
    • Arama sonuçları döndürülüyor ve 200 kodu ile post işlemlerinin sonuçları veriliyor.
    • Search post fonksiyonu props olarak geçiriliyor ve router'a ekleniyor.
    1:01:52Middleware Oluşturma
    • API'ye middleware eklemek planlanıyor çünkü bu daha önemli bir adımdır.
    • Middleware, kullanıcıların alışveriş sitesine giriş yaptığında ve ürünleri sepete eklediğinde kullanılacak.
    1:02:11JWT Middleware Oluşturma
    • Ödeme aşamasında kullanıcı login veya register olmamışsa yönlendirme yapmak için bir middleware oluşturmak gerekiyor.
    • Middleware için bir "old.js" dosyası oluşturulup, JWT (JSON Web Token) kütüphanesi import ediliyor.
    • Middleware fonksiyonu request, response ve next parametrelerini alacak şekilde tasarlanıyor.
    1:03:08Token Kontrolü
    • Frontend'ten gelen token'ı kontrol etmek için request headers'ndan authorization bilgisi alınıyor.
    • Token'ı parçalama işlemi (split) yaparak "Bearer" ve token değerlerini ayırma işlemi gerçekleştiriliyor.
    • Token'ın doğruluğunu kontrol etmek için JWT'nin verify fonksiyonu kullanılıyor ve secret token ile doğrulama yapılıyor.
    1:06:50Middleware Kullanımı
    • Oluşturulan middleware, register veya login olmadan erişim isteyen kullanıcıları kontrol etmek için kullanılabilir.
    • Yeni ürün oluşturma (create post), ürün güncelleme (update) ve silme (delete) gibi işlemlerde middleware kullanılarak sadece yetkili kullanıcıların erişimi sağlanabilir.
    • Middleware, router'lar içerisinde kullanılarak gerekli işlemler yapılabilir.
    1:09:22Video Özeti
    • Video boyunca CRUD işlemlerinin yapılması, arama (search) işlemleri ve kimlik doğrulama (authentication) işlemlerinin gerçekleştirilmesi anlatıldı.
    • Google ile giriş veya telefonla giriş gibi farklı giriş yöntemleri farklı bir videoda ele alınacak.
    • Oluşturulan API, ilerleyen zamanlarda frontend tarafına çekilerek veritabanı işlemleri için kullanılabilir.

    Yanıtı değerlendir

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