ehmicky / Autoserver
Licence: apache-2.0
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188
Programming Languages
javascript
184084 projects - #8 most used programming language
es6
455 projects
Labels
Projects that are alternatives of or similar to Autoserver
Best Of Web Python
🏆 A ranked list of awesome python libraries for web development. Updated weekly.
Stars: ✭ 1,118 (+494.68%)
Mutual labels: api, graphql, rest-api, serverless, framework, library
Json Serverless
Transform a JSON file into a serverless REST API in AWS cloud
Stars: ✭ 108 (-42.55%)
Mutual labels: api, graphql, rest-api, serverless, json, deployment
Space Cloud
Open source Firebase + Heroku to develop, scale and secure serverless apps on Kubernetes
Stars: ✭ 3,323 (+1667.55%)
Mutual labels: graphql, serverless, baas, database, mongodb
Ponzu
Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go.
Stars: ✭ 5,373 (+2757.98%)
Mutual labels: api, cli, json, server
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+10094.15%)
Mutual labels: graphql, rest-api, baas, mongodb
Para
Open source back-end server for web, mobile and IoT. The backend for busy developers. (self-hosted or hosted)
Stars: ✭ 389 (+106.91%)
Mutual labels: api, rest-api, serverless, baas
Wertik Js
💪 A library that powers your app with GraphQL + Rest API
Stars: ✭ 56 (-70.21%)
Mutual labels: api, graphql, database, mongodb
Http Prompt
An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie
Stars: ✭ 8,329 (+4330.32%)
Mutual labels: api, rest-api, cli, json
Rest Layer
REST Layer, Go (golang) REST API framework
Stars: ✭ 1,068 (+468.09%)
Mutual labels: api, graphql, rest-api, framework
Graphql Genie
Simply pass in your GraphQL type defintions and get a fully featured GraphQL API with referential integrity, inverse updates, subscriptions and role based access control that can be used client side or server side.
Stars: ✭ 147 (-21.81%)
Mutual labels: api, graphql, serverless, database
App
Reusable framework for micro services & command line tools
Stars: ✭ 66 (-64.89%)
Mutual labels: graphql, cli, database, framework
Jokeapi
A REST API that serves uniformly and well formatted jokes in JSON, XML, YAML or plain text format that also offers a great variety of filtering methods
Stars: ✭ 71 (-62.23%)
Mutual labels: api, rest-api, json, yaml
Httpie
As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
Stars: ✭ 53,052 (+28119.15%)
Mutual labels: api, rest-api, cli, json
Dialetus Service
API to Informal dictionary for the idiomatic expressions that each Brazilian region It has
Stars: ✭ 202 (+7.45%)
Mutual labels: api, rest-api, serverless, json
V8 Archive
Directus Database API — Wraps Custom SQL Databases with a REST/GraphQL API
Stars: ✭ 486 (+158.51%)
Mutual labels: api, graphql, rest-api, database
Mongoke
Instant Graphql for MongoDb (active branch is golang, rewrite in process)
Stars: ✭ 203 (+7.98%)
Mutual labels: graphql, serverless, database, mongodb
Up
Up focuses on deploying "vanilla" HTTP servers so there's nothing new to learn, just develop with your favorite existing frameworks such as Express, Koa, Django, Golang net/http or others.
Stars: ✭ 8,439 (+4388.83%)
Mutual labels: api, graphql, serverless, deployment
Webtau
Webtau (short for web test automation) is a testing API, command line tool and a framework to write unit, integration and end-to-end tests. Test across REST-API, Graph QL, Browser, Database, CLI and Business Logic with consistent set of matchers and concepts. REPL mode speeds-up tests development. Rich reporting cuts down investigation time.
Stars: ✭ 156 (-17.02%)
Mutual labels: graphql, rest-api, cli, database
Jsonrpc
The jsonrpc package helps implement of JSON-RPC 2.0
Stars: ✭ 143 (-23.94%)
Mutual labels: api, json-rpc, json
Smoke
💨 Simple yet powerful file-based mock server with recording abilities
Stars: ✭ 142 (-24.47%)
Mutual labels: api, json, server
Create a full-featured REST/GraphQL API from a configuration file.
Development status
This project is still in active development, and is not ready for production. Key features are currently missing.
If you want to follow our progress in the meantime, you are welcome to star this repository.
Overview
Create a simple configuration file describing your data model:
engine: 0
collections:
users:
description: User of the API
attributes:
id:
type: string
age:
type: integer
score:
type: number
alias: high_score
default: 10
validate:
minimum: 20
reports:
type: reports[]
reports:
attributes:
id:
type: string
content:
type: string
default:
database: mongodb
databases:
mongodb:
hostname: localhost
password: secret_mongodb_password
dbname: my_database_name
protocols:
http:
port: 5001
Then start a full-featured web API.
$ autoserver
Clients will now be able to perform GraphQL requests:
{
find_users(
filter: { score: { _gt: 100 } }
order: "score"
) {
id
age
score
reports: { content }
}
}
Or REST requests:
GET /rest/users/?filter.score._gt=100&order=score&populate=reports
{
"data": [
{
"id": "15",
"age": 32,
"score": 150,
"reports": { "id": "65", "content": "..." }
},
{
"id": "251",
"age": 24,
"score": 168,
"reports": { "id": "67", "content": "..." }
},
{
"id": "7",
"age": 51,
"score": 192,
"reports": { "id": "10", "content": "..." }
}
]
}
Features
- Multiple RPC systems, including REST, GraphQL and JSON-RPC
- GraphQL debugging, including introspection, interactive debugger and GraphQL schema printing
- Multiple databases support, including MongoDB and an in-memory database. Different databases can be used at the same time.
- Multiple protocols handling, with support for HTTP/1.1 only at the moment
- Multiple formats support for the configuration files, the client request payloads and the server responses, including JSON, YAML, x-www-form-urlencoded, JavaScript, Hjson, JSON5 and INI
- automatic logging and performance monitoring
- extensive error handling and reporting
- CRUD commands: find, create, patch, upsert, delete. Each command can be performed on a single model or on several models.
- Advanced mutations like incrementing, regular expression replacement, cross-attributes mutations, slicing, etc.
- relations, nested commands and populating between models, including for mutations
- filtering
- sorting
- selecting
- renaming attributes
- pagination
- input validation
- authorization, including readonly attributes
- default values
- computed attributes and normalization
- aliases
- automatic attributes:
created_time
,updated_time
,created_by
,updated_by
- compression of both the response and the request, for any protocol. Brotli support.
- dry runs
- silent outputs
- plugins
- custom logic can be added in JavaScript
Documentation
The documentation is here.
Badge
The following badge can be added to your project:
[![autoserver](https://img.shields.io/badge/auto-server-406890.svg?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDU5IDQ1OSIKICAgdmlld0JveD0iMCAwIDQwNS4yMjY5OSA0MDUuMjI4IgogICBoZWlnaHQ9IjQwNS4yMjgiCiAgIHdpZHRoPSI0MDUuMjI2OTkiCiAgIHk9IjBweCIKICAgeD0iMHB4IgogICBpZD0iTGF5ZXJfMSIKICAgdmVyc2lvbj0iMS4xIj48bWV0YWRhdGEKICAgaWQ9Im1ldGFkYXRhMTA4NSI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICBpZD0iZGVmczEwODMiIC8+CjxnCiAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNi44ODcsLTI2Ljg4NykiCiAgIGlkPSJnMTA3OCI+Cgk8cGF0aAogICBzdHlsZT0iZmlsbDojMTJhNWVhIgogICBpZD0icGF0aDEwNzQiCiAgIGQ9Im0gNDMyLjExMywyMDMuODkgLTQzLjM0OCwtMTQuNjMxIGMgLTMuOTQ0LC0xNS42NDYgLTEwLjEzNCwtMzAuMzk3IC0xOC4yMDYsLTQzLjkgTCAzOTAuODgyLDEwNC4zNDcgMzczLjI2Nyw4Ni43MyAzNzIuMjc4LDg1LjczNyAzNTQuNjU0LDY4LjEyIDMxMy42NDIsODguNDQgQyAzMDAuMTQzLDgwLjM2NyAyODUuMzkyLDc0LjE3OCAyNjkuNzQ5LDcwLjIzNyBMIDI1NS4xMSwyNi44ODcgaCAtMjQuOTExIC0xLjM5NSAtMjQuOTE0IGwgLTE0LjYyNyw0My4zNTEgYyAtMTUuNjUsMy45NDEgLTMwLjM5NywxMC4xMyAtNDMuOTA0LDE4LjIwMyBsIC00MS4wMTIsLTIwLjMyIC0xNy42MTgsMTcuNjE2IC0wLjk5MiwwLjk4OSAtMTcuNjIsMTcuNjIgMjAuMzIzLDQxLjAxMiBjIC04LjA2OSwxMy41MDMgLTE0LjI1NCwyOC4yNTQgLTE4LjE5NSw0My44OTYgTCAyNi44ODcsMjAzLjg5IHYgMjQuOTE1IDEuMzkyIDI0LjkxNSBsIDQzLjM1OCwxNC42MzUgYyAzLjk0MSwxNS42NDYgMTAuMTI2LDMwLjM5NyAxOC4xOTUsNDMuODkzIGwgLTIwLjMyMyw0MS4wMTYgMTcuNjIsMTcuNjE2IDAuOTg1LDAuOTkzIDE3LjYyNCwxNy42MiA0MS4wMTIsLTIwLjMyNCBjIDEzLjUwNyw4LjA3MyAyOC4yNTQsMTQuMjU5IDQzLjg5NiwxOC4xOTkgbCAxNC42MzUsNDMuMzU1IGggMjQuOTE1IDEuMzk1IDI0LjkxMSBsIDE0LjYzOSwtNDMuMzU1IGMgMTUuNjQzLC0zLjk0IDMwLjM5NCwtMTAuMTI2IDQzLjg5MywtMTguMTk5IGwgNDEuMDEyLDIwLjMyNCAxNy42MiwtMTcuNjIgMC45OTMsLTAuOTg1IDE3LjYxNiwtMTcuNjI0IC0yMC4zMjMsLTQxLjAxNiBjIDguMDcyLC0xMy40OTUgMTQuMjYyLC0yOC4yNDcgMTguMjA2LC00My44OTMgbCA0My4zNDgsLTE0LjYzNSBWIDIzMC4xOTcgMjI4LjgwNSAyMDMuODkgWiBNIDIyOS41MDQsMzU0LjkwNiBjIC02OS4yNTksMCAtMTI1LjQwNSwtNTYuMTQ3IC0xMjUuNDA1LC0xMjUuNDA2IDAsLTY5LjI1NSA1Ni4xNDYsLTEyNS40MDkgMTI1LjQwNSwtMTI1LjQwOSA2OS4yNTUsMCAxMjUuNDA5LDU2LjE1NCAxMjUuNDA5LDEyNS40MDkgMCw2OS4yNTkgLTU2LjE1NCwxMjUuNDA2IC0xMjUuNDA5LDEyNS40MDYgeiIgLz4KCTxwYXRoCiAgIHN0eWxlPSJjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiMxMmE1ZWE7ZmlsbC1ydWxlOmV2ZW5vZGQiCiAgIGlkPSJwYXRoMTA3NiIKICAgZD0ibSAzMTQuMjUyLDIxOS41MzMgYyAtNy44MzQsLTQuOTM3IC0xNS44NjYsLTkuNTkxIC0yMy44MzMsLTE0LjMxNyAtMjYuOTI0LC0xNS45NjIgLTUzLjg1OCwtMzEuOTEyIC04MC43ODIsLTQ3Ljg2IC00LjU2MSwtMi43MDUgLTkuMDgyLC01LjQ2NCAtMTMuNjg4LC04LjA3NSAtMTAuMTk0LC01Ljc1NiAtMTguMzcxLC0xLjI3IC0xOS4wMDIsMTAuMzY5IC0wLjA3MywxLjMxOSAtMC4wNzIsMi42NDggLTAuMDgyLDMuOTc2IC0wLjAwNCwwLjU4MiAtMC4wMDksMS4yMjIgLTAuMDEzLDEuODk3IHYgMTM2LjY4NSBjIDEuMzk4LDguNTIgOC44MzUsMTIuMTIyIDE3LjMxOSw3Ljc1IDEwLjE1MywtNS4yMjkgMjAuMDE4LC0xMS4wNDIgMjkuOTc5LC0xNi42NjMgMTcuMDc4LC05LjY0OSAzNC4xNDIsLTE5LjMzNSA1MS4xOTgsLTI5LjAyOSAxMi45NzQsLTcuMzggMjYuMDE5LC0xNC42MzMgMzguODUyLC0yMi4yNTYgMTAuNzkzLC02LjQyNiAxMC43NjQsLTE1Ljc0IDAuMDUyLC0yMi40NzcgeiIgLz4KPC9nPgo8L3N2Zz4=)](https://github.com/ehmicky/autoserver)
Contribute
See the developer's documentation.
Contributors
ehmicky 💻 🎨 🤔 📖 |
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].