ori

command module
v0.0.0-...-b405234 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2016 License: MIT Imports: 3 Imported by: 0

README

ori

GoDoc CircleCI

Write massively scalable, low-latency REST/JSON APIs in Go for App Engine, and have fun doing it.

what's this thing?

Google App Engine is a treasure trove of scalable, high-performance computing that costs very little money. It just has a couple of minor inconveniences that tend to befuddle people interested in setting up a 5-minute API:

  • No environment variables for app configuration, such as third-party API secrets and the like.
  • A very weird and hard-to-use account system.
  • No built-in support for REST/JSON APIs unless you want to use Google Cloud Endpoints, which, let's face it, most of us don't.

ori works with kami to solve those problems, so you can use App Engine's indefinite stockpile of high-performance computing and storage in your Go application with very little initial investment of effort.

Read the documentation on GoDoc.

getting started

If you need a guided tutorial, we have one.

why's it called ori?

It's a terrible joke having to do with folding paper deities.

Documentation

Overview

ori is a set of libraries and a command providing high-level support for implementing a REST/JSON API on Google App Engine using Kami (https://godoc.org/github.com/guregu/kami), including request-scoped configuration and authentication, JWT decoding, and middleware to handle JSON content negotiation and CORS.

To install, it's as simple as:

go install github.com/the-information/ori

The ori command has on-line help. Simply type:

ori help

Directories

Path Synopsis
Package account provides support for creating email-keyed user accounts, checking their credentials, and safely performing changes to them in a transactionally consistent way.
Package account provides support for creating email-keyed user accounts, checking their credentials, and safely performing changes to them in a transactionally consistent way.
auth
Package auth provides middleware and support for working with accounts within the context of an HTTP request, including getting accounts based on JWTs.
Package auth provides middleware and support for working with accounts within the context of an HTTP request, including getting accounts based on JWTs.
Package admin provides an http.Handler for the ori command-line utility.
Package admin provides an http.Handler for the ori command-line utility.
Package cache handles HTTP caching headers on responses that are cacheable.
Package cache handles HTTP caching headers on responses that are cacheable.
Package cmd supports the ori command-line utility.
Package cmd supports the ori command-line utility.
package config provides support for storing application-wide configuration parameters in the App Engine Datastore.
package config provides support for storing application-wide configuration parameters in the App Engine Datastore.
package errors makes it easier to associate HTTP response codes with Go errors.
package errors makes it easier to associate HTTP response codes with Go errors.
Package internal exports some items meant only for internal use by ori.
Package internal exports some items meant only for internal use by ori.
Package query provides support for generating App Engine queries from URL query strings.
Package query provides support for generating App Engine queries from URL query strings.
Package rest provides support for REST/JSON content negotiation, writing JSON to the response stream, and REST-specific error messages.
Package rest provides support for REST/JSON content negotiation, writing JSON to the response stream, and REST-specific error messages.
Package shard provides sharded data types for the App Engine Datastore.
Package shard provides sharded data types for the App Engine Datastore.
package slug provides support for "slug" keys, which are string IDs for Datastore keys that need to be usable as URL components.
package slug provides support for "slug" keys, which are string IDs for Datastore keys that need to be usable as URL components.
Package test generates request contexts suitable for use in unit tests.
Package test generates request contexts suitable for use in unit tests.
tutorial

Jump to

Keyboard shortcuts

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