servify
Microservices the simplest way conceivable.
Last updated 9 years ago by maiavictor .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install servify 
SYNC missed versions from official npm registry.

Servify

Microservices the simplest way conceivable.

Usage

Create a microservice:

const servify = require("servify");

// The service state
let count = 0;

// Starts a microservice with 3 API methods
servify.api(3000, {

    // Squares a number
    square: (x) => x * x,

    // Concats two arrays
    concat: (a, b) => a.concat(b),

    // Increments and returns the counter
    count: () => count++

}).then(() => console.log("servified port 3000"))

Call a microservice from code:

const servify = require("servify");

// Builds the API interface from an URL
const api = servify.at("http://localhost:3000");

// Calls API methods like normal lib functions
api.square(2)
    .then(x => console.log(x));

api.concat([1,2], [3,4])
    .then(arr => console.log(arr));

api.count()
    .then(i => console.log(i));

Call a microservice from the browser / request:

Just access the url followed by a function call:

http://localhost:3000/square(2)
http://localhost:3000/concat([1,2], [3,4])
http://localhost:3000/count()

Support

This requires ES6 Proxy support, so you need node.js 6 and up. Proxies cannot be polyfilled in earlier versions.

Why

When all you want is to create a microservice, Express.js becomes annoyingly verbose. You have to worry about things like serializing/deserializing JSON, chosing how to format query/param inputs, picking a XHR lib on the client and so on. Servify is a ridiculously thin (50 LOC) lib that just standardizes that boring stuff. To create a microservice, all you need is an object of functions specifying your API. To interact with a service, all you need is its URL. You can then call its functions exactly like you would call a normal lib (except it returns a Promise, obviously).

Current Tags

  • 0.1.12                                ...           latest (9 years ago)

13 Versions

  • 0.1.12                                ...           9 years ago
  • 0.1.11                                ...           9 years ago
  • 0.1.10                                ...           9 years ago
  • 0.1.9                                ...           9 years ago
  • 0.1.8                                ...           9 years ago
  • 0.1.7                                ...           9 years ago
  • 0.1.6                                ...           9 years ago
  • 0.1.5                                ...           9 years ago
  • 0.1.4                                ...           9 years ago
  • 0.1.3                                ...           9 years ago
  • 0.1.2                                ...           9 years ago
  • 0.1.1                                ...           9 years ago
  • 0.1.0                                ...           9 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (5)
Dev Dependencies (0)
None
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |