go2rest

command module
v0.0.0-...-4a142f4 Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2018 License: BSD-3-Clause Imports: 8 Imported by: 0

README

go2rest exposes any existing command-line program as REST service.

Features

  • Cross-platform. Can run on every platform supported by Go language compiler
  • Lightweight. Just one executable file. All dependencies are statically linked
  • RAML compatible. You can describe REST API for any command-line program using RAML 1.0 markup language based on YAML. The same RAML file you can use to generate documentation for your REST API using ReadTheDocs or any other toolchain for documentation
  • Supports for file transfer through REST API that can be used as input argument for command-line program
  • Mapping between process exit statuses and HTTP statuses
  • Supported JSON types: number, string, boolean, array
  • FastCGI support

How to build

  1. Install Go compiler according to your Operating System
  2. Run go get github.com/sakno/go2rest
  3. Run go build github.com/sakno/go2rest
  4. Grab compiled executable from your current directory

How to use

  1. Describe REST API in the form of RAML file with .raml extension. Read Wiki for detailed guide of how to write correct RAML file; or look at RAML file used for tests.
  2. Run go2rest [--port <port>] <path/to/file.raml>. Now REST service is hosted on specified port

If you want to run service in FastCGI mode then omit port number like this: go2rest <path/to/file.raml>

RAML file should have .raml extension. go2rest uses file extension to determine correct model parser because, in future, the program may support another model formats such as OpenAPI.

Room for improvements

Internal representation of REST model does not rely on RAML directly. It is possible to implement any descriptive model of API. For example, OpenAPI Spec used by Swagger toolchain.

JSON Object (dictionary) data type is not supported at this moment but can be implemented easily.

Some of RAML features are not supported:

  1. Multipart form data
  2. Includes, Libraries, Overlays, and Extensions

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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