Giter Site home page Giter Site logo

node-docrouter's Introduction

Introduction

ANODE is a PaaS (Platform as a Service) for developing and hosting node.js WEB applications on Azure.

ANODE is available as a free open source in github. You can clone all ANODE code and have full control over the platform. The steps below guide you in creating your own ANODE deployment.

Features

In a nutshell, ANODE offers the following features:

  • Multitenancy - ANODE hosts multiple versions of multiple applications from git repositories and branches, side-by-side.
  • Instantaneous deployment - push into git leads to immediate service update in the cloud. ANODE is integrated with github (and bitbucket), supports and leverages github development process.
  • Security - ANODE wraps all security handling and exposes HTTPS endpoint. ANODE applications are HTTP servers, agnostic of security.
  • Instantaneous logging - ANODE offers instant viewing and querying logs from applications.
  • Management dashboard - all management is performed via ANODE's management dashboard. The dashboard is extendable and can be used for managing applications.
  • Scale out - ANODE symmetrically deploys applications on Azure instances. Scaleout is opaque to applications.
  • Interoperability - ANODE allows applications to collaborate with each other. ANODE itself is implemented as a number of node.js applications.
  • Services - there are multiple services offered by ANODE, e.g. scheduling delayed jobs.
  • Testing - ANODE supports test suites development and execution.

Terminology

  • ANODE farm - Azure cloud service with one production deployment of ANODE role running on several instances.
  • Instance - Azure instance (aka VM). We use "Small" sized instances.
  • ANODE cluster - Set of several ANODE farms sharing common storage account.

Prerequisites

You need Git to be installed on your development computer. Follow the these steps if you don't have Git yet.

Setup ANODE farm

node-docrouter's People

Contributors

amiturgman avatar bryant1410 avatar eladb avatar fredericgermain avatar gilad61 avatar mairesweb avatar saary avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-docrouter's Issues

Document/collaborate on metadata structure?

Hey Saar,

I found your project via your comment on Zac Taylors blog post, and think there's a very large overlap in the documentation data you add to routes here, and what can be added when defining resources in my Lazorse project. I'd love to start a discussion on shared schema for describing available endpoints/resources and their parameters, so I'm just going to braindump a bit here on how I've been doing it and the differences I see so far.

In Lazorse I don't (yet) handle the OPTIONS method, but GET / responds with a JSON object describing available resources in a format very similar to yours:

[
  {
    "template": "/{language}/greetings",
    "description": "Per-language greetings",
    "shortName": "localGreeting",
    "methods": ["GET", "POST"],
    "examples": "/examples/localGreeting"
  }
]

(from http://betsmartmedia.github.com/Lazorse/guide.html#routing)

I immediately prefer your "id" to my "shortName", and I like how you're including documentation for parameters inline. I make parameter documentation available as a separate resource (/parameters/{parameterName} by default) because it was a later addition. In the future I will either inline parameter documentation, or provide links in the same way I do for examples.

I also provide examples as a separate resource because I wanted to include responses with the examples as well. I found this desirable because the API I'm developing requires authentication, but I still wanted unauthenticated clients to be able to see what they responses they would receive.

I've also implemented (in an as-yet unreleased extension) support for defining and serving up JSON schemas for responses, and plan to extend that to request bodies as well.

Anyways, I'm very enthusiastic about the idea of consolidating on and documenting a single schema for this metadata, as it's something I hope to build more tooling around as time goes on. We already have clients that do auto-discovery and dynamic methods for PHP, Python, and Node, and the CLI client you mentioned in your comment sounds super cool. Let me know what you think about the differences and if this GH issues works as a venue for discussion for you.

Swagger Spec?

I use swagger to define my rest APIs.
Do you think it would be possible to include a swagger spec implementation?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.