REST architecture has become very popular to construct API. At the same time Node.js is increasingly used to create REST API. What makes Node.js so popular for that?

Quick & easy development

High performance

Advantages:

Single thread is used to handle multiple concurrent requests

All long-running tasks (data access, input/output) are always executed asynchronously on top of worker threads

Node.js makes this type of concurrent programming easier to utilize

Great approach to construct API for existing applications

orchestration of incoming requests to appropriate services

transformation of obtained results to result format

security applying authentication protocols

API usage monitoring

minimal overhead on the interaction with existing applications

API Proxy should not be affected if one of the services of existing applications may work too slow or even get stuck

API Proxy should be lightweight and easy scalable if required

So why Node.js?

Easy to write API and interaction code

Streaming support

Monitoring possibilities

Authentication support

Node.js is lightweight, fast and scalable

Node.js is mature

Reposted From : Reposted From : InstincTools

You can construct REST API with Node.js really quickly.Node.js has large and active community that contribute many useful and mature modules which can be easily included and used. For example, to construct REST API such known modules as express, restify and hapi fit perfectly. They provide easy way to declare API, handle incoming parameters, errors, transformation to JSON, streaming and sending response.Traditional handling of requests is based on threads and blocking operations leading to CPU and memory consuming. For example, if API code reads something from a database, the code stands at that place and waits for operation to finish. In order to handle other requests while that thread is busy, server spawns more threads using more memory and processing time.Node.js is different. It operates on a single-thread, uses an event-driven and a non-blocking I/O approach.This model is highly efficient and scalable as Node.js is basically always accepting requests because it’s not waiting for any read or write operations. That makes it lightweight and efficient to support hundreds of thousands of concurrent requests.Often there is a need to construct a modern, well-structured API for existing application or a set of applications. To implement that it is better to use dedicated API Proxy that can provide:Also it is very important that API Proxy should comply with performance requirements:Node.js is a perfect approach to implement such REST API Proxy and to comply with all performance requirements:There are a lot of ready and useful modules to work with pure HTTP(s), REST API, Web Services, Sockets, etc that can be used both to construct API and to implement interaction with existing applications.Using event-driven and non-blocking I/O approach of Node.js it is easy to stream results back to the client of API as they are getting from existing applications.It is easy to get events on request/connection life cycle and collect metrics on API usage in Node.js.Authentication strategies like OAuth, OpenID, Basic and others are available through passport.js, everyauth and other modules and can be applied easily to API.Node.js allows you to build fast, scalable API Proxy capable of handling a huge number of simultaneous requests with high throughput.Node.js is mature and it powers services for some huge companies like LinkedIn, Walmart, eBay, PayPal, Yahoo and others.Finally, I’d like to say that our experience also proves that Node.js is a great choice to construct REST API. Also it would be great to hear your opinion and practical experience. What approach do you use to construct REST API and why?