EOS API Service platform to allow third-party clients to connect to an eosd blockchain network.
Clone or download
datchley fix: corrected default sorting on block/txn lists (#19)
- the list GET requests for blocks and transactions wasn't returning the "most recent" according to timestamp/creation.
- update blocks list to default sort on `timestamp` descending (most recent)
- updated txn list to default sort on `createdAt` descending (most recent).
- Thanks "Jordi Goyanes" for calling this out!
Latest commit 8753e42 Mar 28, 2018


EOS API Services

Getting Started

$ git clone https://github.com/Tandemly/eos-api-service.git
$ cd eos-api-service
$ cp .env.example .env

Configuration (.env)

The API services are configured through a local .env file. The standard setup is as follows:


You can set the NODE_ENV to which ever environment you're running in (production or development) and the port. Because the API Service uses JWT (JSON Web Tokens) for authentication/authorization, you'll need to set a JWT_SECRET and a JWT_EXPIRATION_MINUTES. Ensure any secret you use is sufficiently long and random (you can use md5, sha256, et al) to generate one.

The MONGO_URI should point to the same mongodb host that the particular eosd ndoe you are connecting to is writing out to. That eosd node and the api service share this datbase. The _TESTS_URI environments are only used in test environment builds on Travis.


Once configured, you can get the API Service up and running using the following:

$ yarn
$ yarn docs
$ yarn start

Running yarn start will run the service using pm2 and with NODE_ENV=production. The command yarn docs generates the API documentation which is available from the running API service at /v1/docs. You can get a simple status of the API service by performing a GET on the /v1/status endpoint which should return a 200 Ok.

Express ES2017 REST API Boilerplate

Boilerplate/Generator/Starter Project for building RESTful APIs and microservices using Node.js, Express and MongoDB


  • No transpilers, just vanilla javascript
  • ES2017 latest features like Async/Await
  • CORS enabled
  • Uses yarn
  • Express + MongoDB (Mongoose)
  • Consistent coding styles with editorconfig
  • Docker support
  • Uses helmet to set some HTTP headers for security
  • Load environment variables from .env files with dotenv
  • Request validation with joi
  • Gzip compression with compression
  • Linting with eslint
  • Tests with mocha, chai and sinon
  • Code coverage with istanbul and coveralls
  • Git hooks with husky
  • Logging with morgan
  • Authentication and Authorization with passport
  • API documentation geratorion with apidoc
  • Continuous integration support with travisCI
  • Monitoring with pm2


Getting Started

Clone the repo and make it yours:

git clone --depth 1 https://github.com/danielfsousa/express-rest-es2017-boilerplate
cd express-rest-es2017-boilerplate
rm -rf .git

Install dependencies:


Set environment variables:

cp .env.example .env

Running Locally

yarn dev

Running in Production

yarn start


# lint code with ESLint
yarn lint

# try to fix ESLint errors
yarn lint:fix

# lint and watch for changes
yarn lint:watch


# run all tests with Mocha
yarn test

# run unit tests
yarn test:unit

# run integration tests
yarn test:integration

# run all tests and watch for changes
yarn test:watch

# open nyc test coverage reports
yarn coverage


# run lint and tests
yarn validate


# show logs in production
pm2 logs


# generate and open api documentation
yarn docs


# run container locally
yarn docker:dev
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

# run container in production
yarn docker:prod
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

# run tests
yarn docker:test
docker-compose -f docker-compose.yml -f docker-compose.test.yml up



MIT License - Tandemly