MEAN.JS - REST API
Bu bölümde, uygulamamızın HTTP yöntemlerini kullanarak veritabanımızla bir REST API aracılığıyla etkileşim kurduğunu göreceğiz. REST terimi , web hizmetleriyle iletişim kurmak için tasarlanmış mimari bir stil olan REpresentational State Transfer anlamına gelirken, API , uygulamaların birbiriyle etkileşime girmesine izin veren Uygulama Programı Arayüzü anlamına gelir.
İlk olarak, tüm öğeleri almak, öğeyi oluşturmak ve bir öğeyi silmek için RESTful API oluşturacağız. Her öğe için _id , MongoDB tarafından otomatik olarak oluşturulacaktır. Aşağıdaki tablo, uygulamanın API'den nasıl veri talep etmesi gerektiğini açıklamaktadır -
HTTP Yöntemi | URL Yolu | Açıklama |
---|---|---|
ALMAK | /api/students |
Öğrenci koleksiyonundan tüm öğrencileri almak için kullanılır. |
İLETİ | /api/students/send |
Öğrenci koleksiyonunda öğrenci kaydı oluşturmak için kullanılır. |
SİL | /api/students/student_id |
Öğrenci koleksiyonundan bir öğrenci kaydını silmek için kullanılır. |
RESTful API Rotaları
İlk olarak RESTful API Routes'te Post Method'u tartışacağız.
İLETİ
Öncelikle Öğrenci koleksiyonunda REST API'miz aracılığıyla bir kayıt oluşturalım. Bu özel durumun kodu server.js dosyasında bulunabilir. Referans için, kodun bir kısmı buraya yapıştırılmıştır -
app.post('/api/students/send', function (req, res) {
var student = new Student(); // create a new instance of the student model
student.name = req.body.name; // set the student name (comes from the request)
student.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'student created!' });
});
});
Yürütme
Bu uygulama için kaynak kodunu bu bağlantıdan indirebilirsiniz . Zip dosyasını indirin; sisteminize çıkartın. Terminali açın ve npm modül bağımlılıklarını kurmak için aşağıdaki komutu çalıştırın.
$ cd mean-demon-consuming_rest_api
$ npm install
İsteği ayrıştırmak için body parser paketine ihtiyacımız var. Bu nedenle, uygulamanıza dahil etmek için aşağıdaki komutu çalıştırın.
npm install --save body-parser
Ekteki kaynak kodu zaten bu bağımlılığa sahiptir, bu nedenle yukarıdaki komutu çalıştırmaya gerek yoktur, sadece bilginiz içindir.
Uygulamayı çalıştırmak için, yeni oluşturduğunuz proje dizininize gidin ve aşağıda verilen komutla çalıştırın -
npm start
Aşağıdaki resimde gösterildiği gibi bir onay alacaksınız -
API çağrılarını test etmek için birçok araç var, burada Chrome için Postman REST Client adlı kullanıcı dostu uzantılardan birini kullanıyoruz .
Postacı REST İstemcisini açın, URL'yi şu şekilde girin http://localhost:3000/api/students/sendPOST yöntemini seçin . Ardından, aşağıda gösterildiği gibi istek verilerini girin -
İsim verilerini x-www-form-urlencoded olarak gönderdiğimize dikkat edin . Bu, tüm verilerimizi Node sunucusuna sorgu dizeleri olarak gönderecektir.
Öğrenci kaydı oluşturmak için Gönder düğmesine tıklayın . Aşağıda gösterildiği gibi bir başarı mesajı görünecektir -
ALMAK
Sonra, tüm öğrenci kayıtlarını mongodb'dan alalım. Aşağıdaki güzergahın yazılması gerekiyor. Tam kodu server.js dosyasında bulabilirsiniz .
app.get('/api/students', function(req, res) {
// use mongoose to get all students in the database
Student.find(function(err, students) {
// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
res.send(err);
res.json(students); // return all students in JSON format
});
});
Ardından, Postacı REST İstemcisini açın, URL'yi şu şekilde girin:
http://localhost:3000/api/students, GET yöntemini seçin ve tüm öğrencileri almak için Gönder düğmesine tıklayın.
SİL
Ardından, REST api çağrısı ile mongo koleksiyonumuzdan bir kaydı nasıl sileceğimize bakalım.
Aşağıdaki güzergahın yazılması gerekiyor. Tam kodu server.js dosyasında bulabilirsiniz .
app.delete('/api/students/:student_id', function (req, res) {
Student.remove({
_id: req.params.student_id
}, function(err, bear) {
if (err)
res.send(err);
res.json({ message: 'Successfully deleted' });
});
});
Ardından, Postacı REST İstemcisini açın, URL'yi şu şekilde girin:
http://localhost:3000/api/students/5d1492fa74f1771faa61146d
(burada 5d1492fa74f1771faa61146d, Student koleksiyonundan sileceğimiz kayıttır).
Tüm öğrencileri almak için SİL yöntemini seçin ve Gönder düğmesine tıklayın.
Silinen veriler için MongoDB'yi kontrol edebilirsiniz. http://localhost:3000/api/students/5d1492fa74f1771faa61146d.