• Stars
    star
    205
  • Rank 190,047 (Top 4 %)
  • Language
    JavaScript
  • License
    Other
  • Created almost 11 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Key Node.js modules for building production-quality APIs

Status](https://coveralls.io/repos/github/apigee-127/volos/badge.svg?branch=master)](https://coveralls.io/github/apigee-127/volos?branch=master)

Apigee Volos

Volos is an open source Node.js solution for developing and deploying production-level APIs. Volos provides a way to leverage common features such as OAuth 2.0, Caching, and Quota Management into your APIs with maximum joy.

All modules are exposed with well-defined interfaces and full test suites such that, for example, changing between a memory-backed Cache or Quota implementation to a Redis-backed one requires only a simple configuration change. In addition, all modules also have the option to proxy to Apigee Edge.

Finally, all modules include Connect, Express, and Volos middleware for easy integration into http proxies and applications.


Quick start

Check out the training sample.


Usage

Apigee Proxy

All modules are capable of using Apigee Edge as a commercially supported, hardened and distributed backend implementation (though this is not required). If you intend to use the Apigee Edge implementations, you'll need to install an Apigee proxy into your Application on the Apigee Edge server. See Apigee proxy installation

Core Modules

The following modules are part of the core of Volos and are available for inclusion in your project via npm:

OAuth 2.0

OAuth 2.0 support with bearer tokens and all the standard grant types. Includes a raw API, plus middleware for Express and Argo.

Two implementations are supported:

Quota

Support for "quotas" as implemented in many APIs -- count API calls by minute, hour, day, and week and reject them when they are exceeded.

Three implementations are supported:

Cache

A simple cache module, supporting "put, "get," and "delete" of string keys and binary values.

Three implementations are supported:

Support Modules

volos-management-apigee

This is a small module that wraps the Apigee management API for creating developers, applications, and the like. It is deliberately separated from the runtime because these operations should not happen often and do not necessarily support high volume. This module is mainly used for testing.

volos-management-redis

This is the equivalent management module for Redis.


Development

If you're developing on this project, it is easiest to link all the various modules into your node_modules directory so they all run locally instead of pulling from npm. To do this, just run:

    npm install

and then:

    bin/link

Testing

Test scripts are written using "mocha." Install mocha if you haven't already like this:

    npm install -g mocha

To test Apigee providers:

  1. Install the "proxy" module on an Apigee application. See the instructions here.
  2. In the "testconfig" directory, copy "testconfig-apigee-sample.js" to "testconfig-apigee.js" and edit the values. You will need to specify the location of your proxy as well as the key and secret for the application.
  3. Run mocha in each apigee/test directory you wish you test.

To test Redis providers:

  1. Install and start a redis server.
  2. In the "common" directory, copy "testconfig-redis-sample.js" to "testconfig-redis.js" and edit the values if necessary.
  3. Run mocha in each redis/test in order to run the tests for that module.

Support

The support model for Volos is 'community support' only. This means that you can use publicly-available resources to solicit assistance from the Volos developer community. Apigee does not offer official support for this product.

Having Problems?

If you are having issues with Volos please do one or both of the following:

  1. Open an issue in the GitHub issue tracker
  2. Ask a question on Stack Overflow

We will do our best to help you resolve the issue as soon as possible.

More Repositories

1

swagger-tools

A Node.js and browser module that provides tooling around Swagger.
JavaScript
700
star
2

sway

A library that simplifies OpenAPI (fka Swagger) integrations/tooling.
JavaScript
190
star
3

swagger-test-templates

Test code generated from Swagger
JavaScript
166
star
4

a127-documentation

Documentation for Apigee-127
113
star
5

swagger-node-runner

The heart of Swagger-Node
JavaScript
102
star
6

a127

Apigee 127 Command Line Interface
JavaScript
72
star
7

swagger-express

JavaScript
52
star
8

bagpipes

Less code, more flow. Let's dance!
JavaScript
47
star
9

swagger-converter

Converts Swagger documents from version 1.2 to 2.0
JavaScript
42
star
10

volos-connectors

Connector Modules for Volos
JavaScript
23
star
11

a127-samples

JavaScript
21
star
12

swagger-testing

Automated API Testing Using SwaggerAPI
TypeScript
16
star
13

swagger-node-slack

Sample
JavaScript
11
star
14

phrixus

A Shopping Cart system utilizing Volos and Usergrid.
JavaScript
11
star
15

swagger-sails

JavaScript
9
star
16

apigee-remote-proxy

A Proxy that installs on Apigee Edge to expose key pieces of Apigee functionality to remote systems via a REST API.
JavaScript
7
star
17

example-project

An example project utilizing Apigee 127
JavaScript
7
star
18

magic

Where the magic happens
JavaScript
4
star
19

swagger-restify

JavaScript
4
star
20

usergrid-swagger

4
star
21

swagger-connect

JavaScript
3
star
22

volos-swagger-oauth

JavaScript
3
star
23

bagpipes-examples

Examples of using bagpipes
JavaScript
3
star
24

swagger-hapi

JavaScript
3
star
25

avault

Apigee Vault Node.js Module
JavaScript
3
star
26

e2e-test

a127 end to end test suite
JavaScript
2
star
27

site

A127 website
HTML
2
star
28

project-skeleton

Cloned skeleton for creating a new Apigee 127 project
JavaScript
2
star
29

swagger-node-examples

Example projects for Swagger-Node
JavaScript
2
star
30

apigee-node-project-template

A good starting template for new node modules with build system, code style etc.
JavaScript
1
star
31

volos-swagger-apply

JavaScript
1
star
32

usergrid-npm

JavaScript
1
star
33

volos-waterline

A Volos connector for Waterline.
JavaScript
1
star