Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rawongithub/grapethor
Grape REST-like API generator based on Thor
https://github.com/rawongithub/grapethor
api crud gem generator grape grapethor rest ruby scaffold thor
Last synced: 20 days ago
JSON representation
Grape REST-like API generator based on Thor
- Host: GitHub
- URL: https://github.com/rawongithub/grapethor
- Owner: rawongithub
- License: mit
- Created: 2019-04-08T20:55:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-08-24T06:41:09.000Z (over 1 year ago)
- Last Synced: 2024-03-26T00:45:23.504Z (10 months ago)
- Topics: api, crud, gem, generator, grape, grapethor, rest, ruby, scaffold, thor
- Language: Ruby
- Homepage:
- Size: 4.43 MB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[![Gem Version](https://badge.fury.io/rb/grapethor.svg)](https://badge.fury.io/rb/grapethor)
[![Build Status](https://travis-ci.org/rawongithub/grapethor.svg?branch=master)](https://travis-ci.org/rawongithub/grapethor)
[![Maintainability](https://api.codeclimate.com/v1/badges/15145f8728d14b65b42c/maintainability)](https://codeclimate.com/github/rawongithub/grapethor/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/15145f8728d14b65b42c/test_coverage)](https://codeclimate.com/github/rawongithub/grapethor/test_coverage)# GrapeThor
Grape REST-like API generator based on Thor.
## Installation
Install it yourself as:
```
$ gem install grapethor
```## Usage
### Get some help
```
$ grapethor helpCommands:
grapethor api VERSION # Creates new API within application
grapethor endpoint RESOURCE [NAME] # Creates new Endpoint within API
grapethor help [COMMAND] # Describe available commands or one specific command
grapethor new NAME # Creates new Grape application
grapethor resource NAME # Creates new Resource within API
grapethor version # Displays Grapethor version
```### Create application
```
$ grapethor help newUsage:
grapethor new NAMEOptions:
-p, [--path=PATH] # Relative path to place application directory
# Default: .
-x, [--prefix=PREFIX] # Add Application URL prefix
# Default: api
-d, [--db=DB] # Use specific database
# Default: sqlite
# Possible values: sqlite, postgresql, mysql
-o, [--orm=ORM] # Use specific ORM
# Default: activerecord
# Possible values: activerecord
-s, [--server=SERVER] # Preconfigure web server
# Default: thin
# Possible values: thin, puma
-t, [--test=TEST] # Use specific test framework
# Default: minitest
# Possible values: minitest, rspec
[--docker], [--no-docker] # Use docker
# Default: true
-l, [--license=LICENSE] # Add software license information
# Default: mit
# Possible values: mit, apache2, freebsd, newbsd, gpl2, gpl3, mpl2, cddl1, epl1
-c, [--copyright=COPYRIGHT] # Add copyright information within license file
-r, [--ruby=RUBY] # Ruby version for application
# Default: 2.5.3 (current ruby version)
[--swagger], [--no-swagger] # Generate swagger documentation and install swagger-ui
# Default: true
```
License types available for `--license` option:- `mit` - [MIT License](http://opensource.org/licenses/MIT)
- `apache2` - [Apache-2.0 License](https://opensource.org/licenses/Apache-2.0)
- `freebsd` - [FreeBSD License](https://opensource.org/licenses/BSD-2-Clause)
- `newbsd` - [New BSD License](https://opensource.org/licenses/BSD-3-Clause)
- `gpl2` - [GPL-3.0 License](https://opensource.org/licenses/GPL-2.0)
- `gpl3` - [GPL-2.0 License](https://opensource.org/licenses/GPL-3.0)
- `mpl2` - [MPL-2.0 License](https://opensource.org/licenses/MPL-2.0)
- `cddl1` - [CDDL-1.0 License](https://opensource.org/licenses/CDDL-1.0)
- `epl1` - [EPL-1.0 License](https://opensource.org/licenses/EPL-1.0)### Create API
```
$ grapethor help apiUsage:
grapethor api VERSIONOptions:
-p, [--path=PATH] # Relative path to application directory
# Default: .Creates new API within application
```
Do not forget to ```cd``` into application directory before run this command. Otherwise use ```--path``` option.Multiple API versions may be created for single application.
### Create Resource
```
$ grapethor help resourceUsage:
grapethor resource NAMEOptions:
-p, [--path=PATH] # Relative path to application directory
# Default: .
-v, [--version=VERSION] # API version tag
# Default: v1
-a, [--attrs=ATTRIBUTE:TYPE] # Model attributes (use proper types or specific ORM)Creates new Resource within API
```
Multiple RESOURCES may be created for single API versionNote: ':id' request path parameter is implicitly used as primary key. There is no need to include it with '-a' option.
Model attribute types available for specific ORM:
- activerecord: `bigint, binary, boolean, date, datetime, decimal, float, integer, numeric, string, text, time`
### Create Endpoint
```
$ grapethor help endpointUsage:
grapethor endpoint RESOURCE [NAME]Options:
-p, [--path=PATH] # Relative path to application directory
# Default: .
-v, [--version=VERSION] # API version tag
# Default: v1
-m, [--method=METHOD] # HTTP request method
# Default: GET
# Possible values: GET, POST, PUT, DELETE
-d, [--desc=DESC] # Endpoint description
-a, [--params=key:value] # Request resource (path) param
-q, [--query=key:value] # Request query paramsCreates new Endpoint within API
```
Multiple ENDPOINTS may be created for single API version.This command may be also used for an addition into existing RESOURCE CRUD.
## How-To
[Sample Workflow](https://github.com/rawongithub/grapethor/wiki/Sample-workflow)
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/rawongithub/grapethor.
## License
The software is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).