Giter VIP home page Giter VIP logo

fsweb-s14g2-node-db-project-2's Introduction

Node DB2 Projesi

Giriş

Bu projede, İlişkisel Veritabanında depolanan CARS yönetmek için kullanılabilecek bir API yazacaksınız.

Talimatlar

Görev 1: Proje Kurulumu

Projeyi forlayın, clonelayın ve yazdığınız kodları pushlamayı unutmayın.

Görev 2: MVP

Bir "cars" kaynağı için bir RESTful API oluşturun. Bu API'nin kullanıcısı bir araba satıcısıdır.

Cars Şeması

Her araba için kritik bilgiler, şasi numarası(vin), marka(make), model ve kilometredir(mileage). Ayrıca aracın vites türünü(transmission) (manuel, otomatik...) ve durum başlığını(title) (temiz, hurda...) da takip ederiz, ancak bu bilgi her zaman ilk başta bilinmez. Aşağıdaki şemayı karşılamak için data/migrations/01-make_cars_table.js migration dosyasının içine "up" ve "down" fonksiyonlarını yazın:

bölüm veri tipi metadata
id unsigned integer primary key, auto-increments, generated by database
vin string required, unique
make string required
model string required
mileage numeric required
title string optional
transmission string optional

Model İşlevlerini Yazma

  • Aşağıdaki db erişim fonksiyonlarını Knex kullanarak api/cars/cars-model.js içine yazın:

    • getAll bir dizi araba kaydına (veya boş bir diziye) çözümlenir
    • getById verilen kimliğe göre bir araba kaydına çözümlenir
    • create yeni oluşturulan araba kaydına çözümlenir

Ara Yazılım Yazma

  • "api/cars/cars-middleware.js" içine aşağıdaki ara yazılımları yazın:

    • checkCarId, req.params içindeki kimlik veritabanında yoksa, { mesaj: "<car id> kimliğine sahip araba bulunamadı" } ile bir durum 404 döndürür.

    • checkCarPayload, herhangi bir gerekli alan eksikse, { mesaj: "<alan adı> eksik" } içeren bir durum 400 döndürür.

    • checkVinNumberValid, vin numarası geçersiz ise, { mesaj: "vin <vin numarası> geçersizdir" } ile bir durum 400 döndürür.

    • checkVinNumberUnique, vin(şasi) numarası veritabanında zaten mevcutsa, `{ mesaj: "vin <vin numarası> zaten var" }' ile bir durum 400 döndürür.

Arabalar API'sini yazın

  • "api/cars/cars-router.js" içinde uygun olan her yerde yukarıda açıklanan middleware ve model işlevlerini kullanarak "arabalar" kaynağı için CR (CRUD'den) yazın:

    • [GET] /api/cars kimliğe göre sıralanmış bir dizi araba döndürür (veya yoksa boş bir dizi).
    • [GET] /api/cars/:id verilen kimliğe göre bir araba döndürür.
    • [POST] /api/cars oluşturulan arabayı döndürür.
  • Beklendiği gibi çalıştıklarını kontrol etmek için uç noktalarınızı "Insomnia" veya "Postman" gibi bir REST istemcisiyle manuel olarak test edin.

  • npm testi çalıştırarak uç noktalarınızı otomatik olarak test edin.

Notlar

  • Ek dosyalar oluşturabilirsiniz ancak mevcut dosyaları veya klasörleri taşımayın veya yeniden adlandırmayın.
  • Ek kitaplıklar yüklemek veya ek komut dosyaları eklemek dışında package.json dosyanızı değiştirmeyin. Mevcut kütüphaneleri güncellemeyin.
  • Uygulamanızda en iyi yöntemleri izlemeniz ve temiz ve profesyonel kodlar yazmanız önemlidir.

Görev 3: Esnek Görevler

  • Knex seed kullanarak veritabanına seed verisi ekleyin
  • API'nize "[PUT]" ve "[DELETE]" işlemlerini ekleyin.
  • "Satış" tablosu için bir şema dosyası yazın. Bu tablo, her arabanın satışına ilişkin bilgileri izlemelidir. Her satışı, satılan arabalar girişine bağlamak için foreign keysı araştırmak isteyebilirsiniz.

fsweb-s14g2-node-db-project-2's People

Contributors

ihsanyazarel avatar emresahiner avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.