forked from loafle/openapi-generator-original
66 lines
1.7 KiB
Markdown
66 lines
1.7 KiB
Markdown
# OpenAPI for Sinatra
|
|
|
|
## Overview
|
|
This is a project to provide Swagger support inside the [Sinatra](http://www.sinatrarb.com/) framework. You can find
|
|
out more about both the spec and the framework at http://swagger.io. For more information about
|
|
Wordnik's APIs, please visit http://developer.wordnik.com.
|
|
|
|
## Prerequisites
|
|
As of ruby 3.0.0, the webrick web server library was removed.
|
|
You need to install a rack-supported web server, such as webrick and thin.
|
|
|
|
The default Gemfile is as follows.
|
|
Update the name of the web server as your prefer.
|
|
|
|
```
|
|
source 'https://rubygems.org'
|
|
|
|
gem "webrick"
|
|
gem "sinatra"
|
|
gem "sinatra-cross_origin"
|
|
```
|
|
|
|
## Getting started
|
|
To generate a ruby-sinatra server for petstore.yaml, please run the following:
|
|
|
|
```
|
|
openapi-generator-cli generate \
|
|
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml \
|
|
-g ruby-sinatra -o code
|
|
```
|
|
|
|
To run the generated server, please run the following:
|
|
|
|
```
|
|
cd code/
|
|
bundle config set path lib
|
|
bundle install
|
|
bundle exec rackup -p 8080
|
|
```
|
|
|
|
You can access the application by the following URL:
|
|
|
|
```
|
|
http://localhost:8080/v2/store/inventory
|
|
```
|
|
|
|
## Docker
|
|
If you want to use a web server other than webrick, you need to edit the generated Dockerfile to prepare the compiler and the make command. Please check the comment of the Dockerfile.
|
|
|
|
To run the code on docker, you can use the Dockerfile as follows:
|
|
|
|
### Build the docker image
|
|
The "container_name" can be changed for your preferences.
|
|
|
|
```
|
|
docker build . --tag "container_name"
|
|
```
|
|
|
|
### Run the docker image
|
|
|
|
```
|
|
docker run -it --rm -p 8080:8080 "container_name"
|
|
```
|
|
|
|
Voila!
|