- RESTful API oluşturma.
- CRUD operasyonları tanımlama.
- API uç noktaları oluşturma.
Bu projeyi forkladıktan sonra bilgisayarınıza klonlayın.
Node.js ve Express i kullanarak kullanıcılar üzerinde CRUD işlemleri çalıştıran bir API yaratın.
- API'yi
nodemon
kullanarak çalıştıranpackage.json
dosyasına birserver
betiği ekleyin.
Bir Web API oluşturmak ve aşağıdaki uçnoktaları uygulamak için "index.js" ve "api/server.js" içinde gerekli kodu ekleyin:
Metod | URL | Açıklama |
---|---|---|
POST | /api/users | "İstek gövdesi" (request body) içinde gönderilen bilgileri kullanarak bir kullanıcı oluşturur. |
GET | /api/users | Kullanıcılar dizisini döndürür. |
GET | /api/users/:id | Belirtilen "id" ile kullanıcı nesnesini döndürür. |
DELETE | /api/users/:id | Belirtilen "id" ile kullanıcıyı kaldırır ve silinen kullanıcıyı döndürür. |
PUT | /api/users/:id | "İstek gövdesi"nden alınan verileri kullanarak belirtilen "id" ile günceller. Güncel nesneyi döndürür |
Her Kullanıcı kaynak aşağıdaki yapıya uymalıdır (AKA şeması):
{
id: "a_benzersiz_id", // String, gerekli
name: "Jane Doe", // String, gerekli
bio: "Having fun", // String, gerekli
}
Bunları api/users/model.js
içinde bulabilirsiniz. Tüm bu fonksiyonlar birer Promise döndürür.
find
Kullanıcı listesini çözümler (ya da boş dizi).findById
Birid
alır ve bu idli kullanıcıyı çözümler (ya da bu id ye ait kimse yoksa null döndürür).insert
Yeni bir kullanıcı alır{ name, bio }
ve yeni oluşturulan kullanıcıyı çözümler{ id, name, bio }
.update
Birid
alır ve var olan kullanıcıyı{ name, bio }
güncel veri ile günceller{ id, name, bio}
(id yoksa null döndürür).remove
Birid
alır ve silinen kullanıcıyı çözümler{ id, name, bio }
.
İstemci /api/users
e POST
isteği atarsa:
-
Request bodyde
name
ya dabio
eksikse:- HTTP
400
durum kodu (Bad Request). - şu JSON'u cevapta döndürür:
{ message: "Lütfen kullanıcı için bir name ve bio sağlayın" }
.
- HTTP
-
Eğer user bilgileri geçerliyse:
- Yeni user i veritabanına kaydedin.
- HTTP
201
(Created) durum kodu. - yeni oluşturulan kullanıcı nesnesi id yi içerecek şekilde döndürün.
-
user kaydedilirken hata oluştuysa:
- HTTP
500
(Server Error) durum kodu cevaplar. - Şu JSON'u döndürün:
{ message: "Veritabanına kaydedilirken bir hata oluştu" }
.
- HTTP
İstemci /api/users
e GET
isteği atarsa :
- Veritabanından kullanıcılar alınırken hata oluşursa:
- HTTP
500
kodu yanıtlar. - Şu JSON'u döndürür:
{ message: "Kullanıcı bilgileri alınamadı" }
.
- HTTP
İstemci /api/users/:id
'e GET
isteği yaparsa :
-
Eğer user belirtilen
id
mevcut değilse:- HTTP
404
(Not Found) yanıtlar. - şu JSON'u döndürür:
{ message: "Belirtilen ID'li kullanıcı bulunamadı" }
.
- HTTP
-
user veritabanından alınırken bir hata oluşursa:
- HTTP
500
yanıtlar. - şu JSON'u döndürür:
{ message: "Kullanıcı bilgisi alınamadı" }
.
- HTTP
İstemci /api/users/:id
'e DELETE
isteği yaparsa :
-
Eğer belirtilen
id
li kullanıcı mevcut değilse:- HTTP
404
(Not Found) yanıtlar. - şu JSON'u döndürür:
{ message: "Belirtilen ID li kullanıcı bulunamadı" }
.
- HTTP
-
Eğer kullanıcı silinirken hata oluşursa:
- HTTP
500
yanıtlar. - şu JSON'u döndürür:
{ message: "Kullanıcı silinemedi" }
.
- HTTP
İstemci /api/users/:id
'e PUT
isteği atarsa :
-
Belirtilen
id
li user yoksa:- HTTP
404
(Not Found). - şu JSON'u döndürür:
{ message: "Belirtilen ID'li kullanıcı bulunamadı" }
.
- HTTP
-
Request bodysinde
name
ya dabio
yoksa:- HTTP
400
(Bad Request). - şu JSON'u döndürür:
{ message: "Lütfen kullanıcı için name ve bio sağlayın" }
.
- HTTP
-
user i güncellerken bir hata oluşursa:
- HTTP
500
. - şu JSON'u döndürür:
{ message: "Kullanıcı bilgileri güncellenemedi" }
.
- HTTP
-
Eğer kullanıcı varsa ve girilen bilgiler geçerliyse:
- "istek gövdesi"nde gönderilen yeni bilgileri kullanarak veritabanındaki kullanıcı nesnesini güncelleyin.
- HTTP
200
(OK). - güncellenen user nesnesini döndürür.
- Oluşturduğunuz uç noktaları Postman ya da HTTPie ile test edin. Otomatik testleri çalıştırmak için
npm test
. - 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.
Dikkat, Esnek görevlere başlamadan MVP'yi tamamladığınızdan emin olun. Eğer şüpeliyseniz yeni bir branch oluşturun.
cors
ara yazılımını etkinleştirmeniz gerekecek:
cors
npm modulünü ekleyin:npm i cors
.server.use(express.json())
arkasınaserver.use(cors())
ekleyin.
Yeni bir React uygulaması oluşturun ve sunucunuza bağlayın:
- React uygulaması herhangi bir yerde olabilir, ancak bu proje için onu çözüm klasörü içinde oluşturun.
- API'deki "/api/users" uç noktasına bağlanın ve kullanıcıların listesini gösterin.
- görüntülenen her kullanıcıya onu sunucudan kaldıracak bir silme butonu ekleyin.
- veri eklemek ve güncellemek için formlar ekleyin.
- Kullanıcı listesini uygun gördüğünüz şekilde stilleyin.