Abhay
Abhay

Reputation: 483

How to implement ReST services with Sails.js?

I am quite new to Node. I came across Sails.js. I think it is based on WebSocket, which seems to be really good for building real-time applications. I would like to know that whether Sails can be used to implement REST architecture as it uses WebSocket? And if yes, how?

Upvotes: 0

Views: 2349

Answers (2)

Abhi
Abhi

Reputation: 480

sails new testapp

cd testapp

sails generate api apiName

controller

create: function (req, res) {
        var payload = {
          name:req.body.name,
          price:req.body.price,
          category:req.body.category,
          author:req.body.author,
          description:req.body.description
        };
       Book.create(payload).exec(function(err){
          if(err){
            res.status(500).json({'error':'something is not right'})
          }else{
            res.status(200).json({'success':true, 'result':payload, 'message':'Book Created success'})
          }
       });
   },

   readone: async function (req, res) {
        var id = req.params.id;
        var fff = await Book.find(id);
           if(fff.length == 0){
             res.status(500).json({'error':'No record found from this ID'})
           }else{
             res.status(200).json({'success':true, 'result':fff, 'message':'Record found'})
           }
    },

model

 attributes: {
    id: { type: 'number', autoIncrement: true },
    name: { type: 'string', required: true, },
    price: { type: 'number', required: true, },
    category: { type: 'string', required: true, },
    author: { type: 'string' },
    description: { type: 'string' },
  },

routes

'post /newbook': 'BookController.create',
  'get /book/:id': 'BookController.readone',

Upvotes: 0

Chris
Chris

Reputation: 131

Yes it can. Sails JS allows you to easily build a RESTful API, essentially with no effort to get started. Also, websockets (through socket.io) are integrated by default into the view and api.

To create a fully RESTful app from the ground up, it actually requires no JS. Try:

sails new testapp
cd testapp
sails generate model user
sails generate controller user
cd <main root>
sails lift

The CRUD (Create, Read, Update, Delete) actions are already created for you. No code!

You can create a user in your browser by doing the following: HTTP POST (using a tool like PostMan) to http://:1337/user/create

{ "firstName": "Bob", "lastName": "Jones" }

Next, do a GET to see the new user: HTTP GET http://:1337/user/

FYI - Sails JS uses a default disk based database to get you going

Done.

Upvotes: 5

Related Questions