Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/256dpi/fire
An idiomatic micro-framework for building Ember.js compatible APIs with Go.
https://github.com/256dpi/fire
ember emberjs framework go golang json-api jsonapi mongodb oauth2
Last synced: about 2 months ago
JSON representation
An idiomatic micro-framework for building Ember.js compatible APIs with Go.
- Host: GitHub
- URL: https://github.com/256dpi/fire
- Owner: 256dpi
- License: mit
- Created: 2016-05-15T22:04:47.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-04-15T21:09:04.000Z (8 months ago)
- Last Synced: 2024-10-31T11:41:30.449Z (about 2 months ago)
- Topics: ember, emberjs, framework, go, golang, json-api, jsonapi, mongodb, oauth2
- Language: Go
- Homepage:
- Size: 2.5 MB
- Stars: 57
- Watchers: 7
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Go on Fire
[![Test](https://github.com/256dpi/fire/actions/workflows/test.yml/badge.svg)](https://github.com/256dpi/fire/actions/workflows/test.yml)
[![GoDoc](https://godoc.org/github.com/256dpi/fire?status.svg)](http://godoc.org/github.com/256dpi/fire)
[![Release](https://img.shields.io/github/release/256dpi/fire.svg)](https://github.com/256dpi/fire/releases)**An idiomatic micro-framework for building Ember.js compatible APIs with Go.**
## Introduction
**Go on Fire** is built on top of the wonderful built-in [http](https://golang.org/pkg/net/http) package, implements the [JSON API](http://jsonapi.org) specification through the dedicated [jsonapi](https://github.com/256dpi/jsonapi) library, uses the official [mongo](https://github.com/mongodb/mongo-go-driver) driver for persisting resources with [MongoDB](https://www.mongodb.com), and leverages the dedicated [oauth2](https://github.com/256dpi/oauth2) library to provide out-of-the-box support for [OAuth2](https://oauth.net/2/) authentication using [JWT](https://jwt.io) tokens. Additionally, it provides packages for request authorization, asynchronous job processing, and WebSocket-based event sourcing.
The deliberate and tight integration of these components provides a very simple and extensible set of abstractions for rapidly building backend services for websites that use [Ember.js](http://emberjs.com) as their frontend framework. Of course, it can also be used in conjunction with any other single-page application framework or as a backend for native mobile applications.
To get started with building with Go on Fire, refer to the [package documentation](https://godoc.org/github.com/256dpi/fire) for more detailed information on the types and methods. Also, have a look at the [example](https://github.com/256dpi/fire/tree/master/example) application that uses most Go on Fire features.
## Features
Go on Fire ships with built-in support for various features to provide a complete toolkit for ambitious projects:
- Declarative definition of models and resource controllers.
- Custom group, collection, and resource actions.
- Built-in validators incl. automatic relationship validation.
- Callback-based plugin system for easy extendability.
- Integrated asynchronous and distributed job processing system.
- Event sourcing via WebSockets and SSE.
- Declarative authentication and authorization framework.
- Integrated OAuth2 authenticator and authorizer.
- Support for tracing via [opentracing](https://opentracing.io).## Installation
To get started, install the package using the go tool:
```bash
$ go get -u github.com/256dpi/fire
```## License
The MIT License (MIT)
Copyright (c) 2016 Joël Gähwiler