Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apibrew/apibrew
APIBrew is Low code software to automate building CRUDs from yaml files
https://github.com/apibrew/apibrew
api application-builder code-generation crud grpc low-code low-code-platform nodejs openapi openapi3 rest rest-api restful restful-api swagger typescript
Last synced: 4 days ago
JSON representation
APIBrew is Low code software to automate building CRUDs from yaml files
- Host: GitHub
- URL: https://github.com/apibrew/apibrew
- Owner: apibrew
- License: mit
- Created: 2023-01-21T13:22:13.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-05T06:48:54.000Z (6 months ago)
- Last Synced: 2024-07-08T10:56:29.758Z (6 months ago)
- Topics: api, application-builder, code-generation, crud, grpc, low-code, low-code-platform, nodejs, openapi, openapi3, rest, rest-api, restful, restful-api, swagger, typescript
- Language: Go
- Homepage: https://apibrew.io
- Size: 32.6 MB
- Stars: 234
- Watchers: 4
- Forks: 7
- Open Issues: 12
-
Metadata Files:
- Readme: Readme.md
- License: License.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- my-awesome-list - apibrew
README
# Api Brew - https://apibrew.io
[![build](https://github.com/apibrew/apibrew/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/apibrew/apibrew/actions/workflows/build.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/apibrew/apibrew)](https://goreportcard.com/report/github.com/apibrew/apibrew)
[![Go Reference](https://pkg.go.dev/badge/github.com/apibrew/apibrew.svg)](https://pkg.go.dev/github.com/apibrew/apibrew)
[![Docker Pulls](https://img.shields.io/docker/pulls/tislib/apibrew)](https://hub.docker.com/r/tislib/apibrew)
[![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/tislib/apibrew)](https://hub.docker.com/r/tislib/apibrew)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/apibrew/apibrew)
![GitHub](https://img.shields.io/github/license/apibrew/apibrew)Docs: https://apibrew.io/docs/getting-started
Getting Started Video: https://www.youtube.com/watch?v=6iJ5qCUbdgs
## Introduction
**Everything is a *Resource***. And **Everything has a *CRUD API***
With API Brew, you can create CRUD APIs for your data in a few minutes
### Run your instance
```shell
docker run -v $(pwd)/data:/var/lib/postgresql/data -p 9009:9009 tislib/apibrew:full-latest
```Your instance is ready: Swagger docs: http://localhost:9009/docs/swagger
### Create first resource
Configure Apbr cli: https://apibrew.io/docs/cli
country.yml
```yaml
type: resource
name: Book
properties:
title:
type: STRING
unique: true
required: true
description:
type: STRING
``````bash
apbr apply -f country.yml
```
So you are ready, you have fully established Rest API for book resourceYou can build entire application with resources and references between them (like relations in relational databases)
### Change its behaviour with power of nano code
Everything can be written by resources, not?
**Let's extend our Book resource with help of nano code**BookLogic.js
```javascript
const book = resource('Book')book.beforeCreate((book) => {
if (!book.description) {
book.description = 'No description'
}
});
```
```bash
apbr deploy -f BookLogic.js --override
```See the docs for nano: https://apibrew.io/docs/nano
So we have extended our book resource with help of nano code
So, with **API Brew**, you can create your application with resources and you can customize behavior of your resources with extensions
## About
API Brew is a **Low Code software** that allows to create various Grpc and Rest APIs from various database platforms## Features
* ***Declarative*** - *API Brew* is declarative. You can define your schema in a declarative way, it will create your APIs
* ***Low Code*** - With API Brew, you can create APIs for your data without coding. But you can also extend your APIs with
extensions, so you can customize behavior of your Resources/Apis
* ***Rest API*** - As you create resources, Rest Apis for them is made automatically
* ***Grpc*** - As you create resources, Grpc Apis for them is made automatically
* ***Database agnostic*** - API Brew is using Postgresql database by default, but it also supports various databases. Including Mongo, Mysql, Redis, etc.
* ***CRUD*** - Crud is on the heart of API Brew.
* ***Swagger*** - Swagger docs are generated automatically
* ***Authentication*** - API Brew supports various authentication methods. Including JWT authentication etc.
* ***Authorization*** - API Brew supports authorization. You can define permissions for your resources
* ***Multi Database*** - You can define multiple databases and do operations on top of them
* ***Scalable*** - API Brew is scalable. You can run it on multiple instances, and it will work as expected, as API Brew does not have any data internally, you can scale it.
* ***Extensible*** - API Brew is extensible. You can extend your resources with extensions. You can also extend your APIs with extensions
* ***CLI support*** - API Brew has a cli tool to manage your resources, dataSources, etc. It is called `apbr`
* ***Docker*** - API Brew is dockerized. You can run it on docker
* ***Docker Compose*** - API Brew is docker-compose ready. You can run it on docker-compose
* ***Kubernetes*** - API Brew is kubernetes ready. You can run it on kubernetes## Use Cases
* Creating backend for your mobile application or website
* Creating backend for your existing database
* Managing your data in a CRUD fashion
* Creating Standardized, well documented APIs for your data