Tìm hiểu nodejs và xây dựng ứng dụng cơ bản [P2]



  • RESTful Web Service trong Node.js

    RESTful web service là một tập hợp các giao thức chuẩn được sử dụng cho mục đích trao đối giữa hệ thống và ứng dụng . Các ứng dụng phần mềm được viết bởi các ngôn ngữ khác nhau và chạy bởi các nền tảng khác nhau có thể sử dụng web service để trao đổi dữ liệu.

    Web service dựa trên các kiến trúc REST được biết như RESTful webservice . Những webservice sử dụng phương thức HTTP để triển khai các định nghĩa kiến trúc REST. các phương thức HTTP được sử dụng trong REST GET, PUT, POST và DELETE. Công nghệ REST thường được sử dụng với công nghệ SOAP (Simple Object Access Protocol) vì RES tốn băng thông ít hơn và sử dụng hiệu quả trên Internet
    Với việc sử dụng đám mây ngày càng tăng, các API đang là xu hướng mới của dịch vụ web. REST là một sự lựa chọn hợp lý để xây dựng các API cho phép người dùng kết nối và tương tác với các dịch vụ đám mây. Các API RESTful nổi tiếng được sử dụng như Amazon, Google, LinkedIn và Twitter.
    Vậy các API RESTful hoạt động như thế nào.

    Xây dựng API RESTful với Nodejs

    Thiết lập máy chủ

    Hãy cài đặt Express và nodmon, Express sẽ được sử dụng để tạo ra máy chủ trong khi nodmon sẽ giúp theo dõi các thay đổi đối ứng dụng bằng cách xem các tệp đã thay đổi và tự động khởi động lại máy chủ.

    npm install --save-dev nodemon
    npm install express --save
    

    Khi cài đặt thành công tệp package.json sẽ được tạo ra. bạn có thể thêm các package khác bằng command > npm install <package_name>

    Mở tệp server.js và nhập / sao chép mã dưới đây vào đó

    var express = require('express'),
      app = express(),
      port = process.env.PORT || 3000;
    
    app.listen(port);
    
    console.log('todo list RESTful API server started on: ' + port);
    

    Trên terminal bạn, chạy npm run start này sẽ bắt đầu máy chủ và sau đó bạn sẽ

    Trước hết, chúng ta hãy cài đặt mongoose npm install mongoose --save . option --save sẽ giúp chúng ta lưu tên package vào file package.json

    
    'use strict';
    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    
    var TaskSchema = new Schema({
      name: {
        type: String,
        required: 'Kindly enter the name of the task'
      },
      Created_date: {
        type: Date,
        default: Date.now
      },
      status: {
        type: [{
          type: String,
          enum: ['pending', 'ongoing', 'completed']
        }],
        default: ['pending']
      }
    });
    
    module.exports = mongoose.model('Tasks', TaskSchema);
    

    Thiết lập routers

    'use strict';
    module.exports = function(app) {
    var todoList = require('../controllers/todoListController');
    
      // todoList Routes
      app.route('/tasks')
      .get(todoList.list_all_tasks)
      .post(todoList.create_a_task);
    
      app.route('/tasks/:taskId')
        .get(todoList.read_a_task)
        .put(todoList.update_a_task)
        .delete(todoList.delete_a_task);
    };
    

    Thiết lập controller

    
    'use strict';
    
    var mongoose = require('mongoose'),
    Task = mongoose.model('Tasks');
    exports.list_all_tasks = function(req, res) {
      Task.find({}, function(err, task) {
        if (err)
          res.send(err);
        res.json(task);
      });
    };
    
    exports.create_a_task = function(req, res) {
      var new_task = new Task(req.body);
      new_task.save(function(err, task) {
        if (err)
          res.send(err);
        res.json(task);
      });
    };
    
    exports.read_a_task = function(req, res) {
      Task.findById(req.params.taskId, function(err, task) {
        if (err)
          res.send(err);
        res.json(task);
      });
    };
    
    exports.update_a_task = function(req, res) {
      Task.findOneAndUpdate({_id: req.params.taskId}, req.body, {new: true}, function(err, task) {
        if (err)
          res.send(err);
        res.json(task);
      });
    };
    
    exports.delete_a_task = function(req, res) {
      Task.remove({
        _id: req.params.taskId
      }, function(err, task) {
        if (err)
          res.send(err);
        res.json({ message: 'Task successfully deleted' });
      });
    };
    

    Tạo file server.js và bật mongodb để bắt đầu chạy

    var express = require('express'),
      app = express(),
      port = process.env.PORT || 3000,
      mongoose = require('mongoose'),
      Task = require('./api/models/todoListModel'), //created model loading here
      bodyParser = require('body-parser');
    // mongoose instance connection url connection
    mongoose.Promise = global.Promise;
    mongoose.connect('mongodb://localhost/Tododb'); 
    
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    var routes = require('./api/routes/todoListRoutes'); //importing route
    routes(app); //register the route
    app.listen(port);
    

    Câu lệnh khởi động server nodejs
    node server.js

    Tham khảo.

    https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbd
    http://searchmicroservices.techtarget.com/definition/RESTful-API
    Nguồn: Viblo


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới LaptrinhX, vui lòng đợi một lúc để chúng tôi thử kết nối lại.