xavi

command module
v0.0.0-...-6637ac4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 9, 2019 License: Apache-2.0 Imports: 12 Imported by: 0

README

XAVI - The XTRAC API Gateway

Codeship Status for xtracdev/xavi Go Report Card

Xavi is a API gateway that decouples API consumers from API producers. Xavi allows an API contract to be defined and maintained from the consumer perspective, implemented as a facade in front of the services and applications providing API functionality.

Xavi provides several key features:

  • HTTP Reverse Proxy. HTTP endpoints can be exposed by the XTRAC API gateway to API consumers, with the gateway handling the routing to the servers providing API services.
  • Load balancing. The XTRAC API Gateway provides the ability to load balance among multiple servers providing capabilities used in an API.
  • Plugin Mechanism. The XTRAC API Gateway provides a well defined plugin interface that allows implementing the decorator pattern on HTTP calls, enabling things like message transformation, url rewriting, and protocol translation.
  • Configuration via Command Line and REST Services. The configuration used at runtime by the XTRAC API Gateway can be configured both at the command line and via a REST service API.
  • Pluggable configuration store. Supported stores currently include Consul and a memory-based store that can be flushed to disk.

Contributing

To contribute, you must certify you agree with the Developer Certificate of Origin by signing your commits via git -s. To create a signature, configure your user name and email address in git. Sign with your real name, do not use pseudonyms or submit anonymous commits.

In terms of workflow:

  1. For significant changes or improvement, create an issue before commencing work.
  2. Fork the respository, and create a branch for your edits.
  3. Add tests that cover your changes, unit tests for smaller changes, acceptance test for more significant functionality.
  4. Run gofmt on each file you change before committing your changes.
  5. Run golint on each file you change before committing your changes.
  6. Make sure all the tests pass before committing your changes.
  7. Commit your changes and issue a pull request.

Quick Start

A guide for trying out xavi is available in the xavi github repository:

Quick Start Guide

Developing Xavi

Developer notes for building and coding xavi are available in the xavi github repository:

Developer Notes

License

(c) 2015 Fidelity Investments Licensed under the Apache License, Version 2.0

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
timing
Package timing provides a plugin Xavi wires in as the enclosing wrapper for the user specified plugin chain.
Package timing provides a plugin Xavi wires in as the enclosing wrapper for the user specified plugin chain.
Package timer implements a simple timing utility that can be used to capture end to end timings, plus any subtimings of interests.
Package timer implements a simple timing utility that can be used to capture end to end timings, plus any subtimings of interests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL