├── .github └── workflows │ └── build.yml ├── .gitignore ├── .rubocop.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── Gemfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── apicraft-rails.gemspec ├── assets ├── api_first_workflow.jpg ├── apicraft_rails.png ├── rapidoc.png └── swaggerdoc.png ├── bin ├── console └── setup ├── examples ├── all_of_with_multiple_types.yaml ├── any_of_with_constraints.yaml ├── array_of_objects.yaml ├── books.json ├── example.rb ├── multiple_formats.yaml ├── one_of.yaml └── simple_object.yaml ├── lib ├── apicraft-rails.rb └── apicraft │ ├── concerns.rb │ ├── concerns │ ├── cacheable.rb │ └── middleware_util.rb │ ├── config.rb │ ├── constants.rb │ ├── errors.rb │ ├── loader.rb │ ├── middlewares.rb │ ├── middlewares │ ├── introspector.rb │ ├── mocker.rb │ └── request_validator.rb │ ├── mocker.rb │ ├── mocker │ ├── all_of.rb │ ├── any_of.rb │ ├── array.rb │ ├── base.rb │ ├── boolean.rb │ ├── integer.rb │ ├── number.rb │ ├── object.rb │ ├── one_of.rb │ └── string.rb │ ├── openapi.rb │ ├── openapi │ ├── contract.rb │ ├── operation.rb │ └── response.rb │ ├── railtie.rb │ ├── tasks │ ├── generate.rake │ ├── init.rake │ └── validate.rake │ ├── templates │ ├── initializer.rb │ └── openapi.example.yaml │ ├── validator.rb │ ├── version.rb │ ├── web.rb │ └── web │ ├── actions.rb │ ├── app.rb │ └── router.rb ├── sig └── apicraft.rbs ├── spec ├── apicraft │ ├── config_spec.rb │ ├── loader_spec.rb │ └── openapi │ │ ├── contract_spec.rb │ │ ├── operation_spec.rb │ │ └── response_spec.rb ├── apicraft_spec.rb ├── fixtures │ └── contracts │ │ ├── books.json │ │ └── books.yaml └── spec_helper.rb └── web ├── assets └── images │ ├── apicraft.png │ └── apicraft_thumb.png └── views ├── index.erb ├── rapidoc.erb ├── redoc.erb └── swaggerdoc.erb /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/.gitignore -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/Rakefile -------------------------------------------------------------------------------- /apicraft-rails.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/apicraft-rails.gemspec -------------------------------------------------------------------------------- /assets/api_first_workflow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/assets/api_first_workflow.jpg -------------------------------------------------------------------------------- /assets/apicraft_rails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/assets/apicraft_rails.png -------------------------------------------------------------------------------- /assets/rapidoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/assets/rapidoc.png -------------------------------------------------------------------------------- /assets/swaggerdoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/assets/swaggerdoc.png -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/bin/console -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/bin/setup -------------------------------------------------------------------------------- /examples/all_of_with_multiple_types.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/all_of_with_multiple_types.yaml -------------------------------------------------------------------------------- /examples/any_of_with_constraints.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/any_of_with_constraints.yaml -------------------------------------------------------------------------------- /examples/array_of_objects.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/array_of_objects.yaml -------------------------------------------------------------------------------- /examples/books.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/books.json -------------------------------------------------------------------------------- /examples/example.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/example.rb -------------------------------------------------------------------------------- /examples/multiple_formats.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/multiple_formats.yaml -------------------------------------------------------------------------------- /examples/one_of.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/one_of.yaml -------------------------------------------------------------------------------- /examples/simple_object.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/examples/simple_object.yaml -------------------------------------------------------------------------------- /lib/apicraft-rails.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft-rails.rb -------------------------------------------------------------------------------- /lib/apicraft/concerns.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/concerns.rb -------------------------------------------------------------------------------- /lib/apicraft/concerns/cacheable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/concerns/cacheable.rb -------------------------------------------------------------------------------- /lib/apicraft/concerns/middleware_util.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/concerns/middleware_util.rb -------------------------------------------------------------------------------- /lib/apicraft/config.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/config.rb -------------------------------------------------------------------------------- /lib/apicraft/constants.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/constants.rb -------------------------------------------------------------------------------- /lib/apicraft/errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/errors.rb -------------------------------------------------------------------------------- /lib/apicraft/loader.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/loader.rb -------------------------------------------------------------------------------- /lib/apicraft/middlewares.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/middlewares.rb -------------------------------------------------------------------------------- /lib/apicraft/middlewares/introspector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/middlewares/introspector.rb -------------------------------------------------------------------------------- /lib/apicraft/middlewares/mocker.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/middlewares/mocker.rb -------------------------------------------------------------------------------- /lib/apicraft/middlewares/request_validator.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/middlewares/request_validator.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/all_of.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/all_of.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/any_of.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/any_of.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/array.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/array.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/base.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/boolean.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/boolean.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/integer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/integer.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/number.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/number.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/object.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/object.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/one_of.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/one_of.rb -------------------------------------------------------------------------------- /lib/apicraft/mocker/string.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/mocker/string.rb -------------------------------------------------------------------------------- /lib/apicraft/openapi.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/openapi.rb -------------------------------------------------------------------------------- /lib/apicraft/openapi/contract.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/openapi/contract.rb -------------------------------------------------------------------------------- /lib/apicraft/openapi/operation.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/openapi/operation.rb -------------------------------------------------------------------------------- /lib/apicraft/openapi/response.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/openapi/response.rb -------------------------------------------------------------------------------- /lib/apicraft/railtie.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/railtie.rb -------------------------------------------------------------------------------- /lib/apicraft/tasks/generate.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/tasks/generate.rake -------------------------------------------------------------------------------- /lib/apicraft/tasks/init.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/tasks/init.rake -------------------------------------------------------------------------------- /lib/apicraft/tasks/validate.rake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/tasks/validate.rake -------------------------------------------------------------------------------- /lib/apicraft/templates/initializer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/templates/initializer.rb -------------------------------------------------------------------------------- /lib/apicraft/templates/openapi.example.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/templates/openapi.example.yaml -------------------------------------------------------------------------------- /lib/apicraft/validator.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/validator.rb -------------------------------------------------------------------------------- /lib/apicraft/version.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/version.rb -------------------------------------------------------------------------------- /lib/apicraft/web.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/web.rb -------------------------------------------------------------------------------- /lib/apicraft/web/actions.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/web/actions.rb -------------------------------------------------------------------------------- /lib/apicraft/web/app.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/web/app.rb -------------------------------------------------------------------------------- /lib/apicraft/web/router.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/lib/apicraft/web/router.rb -------------------------------------------------------------------------------- /sig/apicraft.rbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/sig/apicraft.rbs -------------------------------------------------------------------------------- /spec/apicraft/config_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/apicraft/config_spec.rb -------------------------------------------------------------------------------- /spec/apicraft/loader_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/apicraft/loader_spec.rb -------------------------------------------------------------------------------- /spec/apicraft/openapi/contract_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/apicraft/openapi/contract_spec.rb -------------------------------------------------------------------------------- /spec/apicraft/openapi/operation_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/apicraft/openapi/operation_spec.rb -------------------------------------------------------------------------------- /spec/apicraft/openapi/response_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/apicraft/openapi/response_spec.rb -------------------------------------------------------------------------------- /spec/apicraft_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/apicraft_spec.rb -------------------------------------------------------------------------------- /spec/fixtures/contracts/books.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/fixtures/contracts/books.json -------------------------------------------------------------------------------- /spec/fixtures/contracts/books.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/fixtures/contracts/books.yaml -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/spec/spec_helper.rb -------------------------------------------------------------------------------- /web/assets/images/apicraft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/web/assets/images/apicraft.png -------------------------------------------------------------------------------- /web/assets/images/apicraft_thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/web/assets/images/apicraft_thumb.png -------------------------------------------------------------------------------- /web/views/index.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/web/views/index.erb -------------------------------------------------------------------------------- /web/views/rapidoc.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/web/views/rapidoc.erb -------------------------------------------------------------------------------- /web/views/redoc.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/web/views/redoc.erb -------------------------------------------------------------------------------- /web/views/swaggerdoc.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apicraft-dev/apicraft-rails/HEAD/web/views/swaggerdoc.erb --------------------------------------------------------------------------------