{"id":14955262,"url":"https://github.com/a-chacon/oas_rails","last_synced_at":"2025-04-12T20:44:06.503Z","repository":{"id":249542145,"uuid":"831796203","full_name":"a-chacon/oas_rails","owner":"a-chacon","description":"Generate Automatic Interactive Documentation for Your Rails API","archived":false,"fork":false,"pushed_at":"2025-04-11T21:47:27.000Z","size":2148,"stargazers_count":96,"open_issues_count":6,"forks_count":12,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-11T22:36:38.454Z","etag":null,"topics":["api","api-rest","documentation","oas","oas3","openapi","openapi31","rails","rapidoc","ruby","swagger","swagger-ui"],"latest_commit_sha":null,"homepage":"https://a-chacon.com/oas_rails","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a-chacon.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-21T16:44:36.000Z","updated_at":"2025-04-10T12:56:31.000Z","dependencies_parsed_at":"2025-01-04T21:11:18.758Z","dependency_job_id":"5c3f70bb-bee3-4ee8-a010-4316aa219cbe","html_url":"https://github.com/a-chacon/oas_rails","commit_stats":{"total_commits":91,"total_committers":3,"mean_commits":"30.333333333333332","dds":0.4065934065934066,"last_synced_commit":"adf10ba0bd150b4242855d2b728f5258358de9fa"},"previous_names":["a-chacon/oas_rails"],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chacon%2Foas_rails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chacon%2Foas_rails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chacon%2Foas_rails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a-chacon%2Foas_rails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a-chacon","download_url":"https://codeload.github.com/a-chacon/oas_rails/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631687,"owners_count":21136556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-rest","documentation","oas","oas3","openapi","openapi31","rails","rapidoc","ruby","swagger","swagger-ui"],"created_at":"2024-09-24T13:10:46.923Z","updated_at":"2025-04-12T20:44:06.490Z","avatar_url":"https://github.com/a-chacon.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"![Gem Version](https://img.shields.io/gem/v/oas_rails?color=E9573F)\n![GitHub License](https://img.shields.io/github/license/a-chacon/oas_rails?color=blue)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/a-chacon/oas_rails/.github%2Fworkflows%2Frubyonrails.yml)\n![Gem Total Downloads](https://img.shields.io/gem/dt/oas_rails)\n![Static Badge](https://img.shields.io/badge/Rails-%3E%3D7.0.0-%23E9573F)\n![Static Badge](https://img.shields.io/badge/Ruby-%3E%3D3.1.0-%23E9573F)\n\n# 📃Open API Specification For Rails\n\nOasRails is a Rails engine for generating **automatic interactive documentation for your Rails APIs**. It generates an **OAS 3.1** document and displays it using **[RapiDoc](https://rapidocweb.com)**.\n\n🎬 A Demo Video Here:\n\u003chttps://vimeo.com/1013687332\u003e\n🎬\n\n![Screenshot](https://a-chacon.com/assets/images/oas_rails_ui.png)\n\n## Related Projects\n\n- **[ApiPie](https://github.com/Apipie/apipie-rails)**: Doesn't support OAS 3.1, requires learning a DSL, lacks a nice UI\n- **[swagger_yard-rails](https://github.com/livingsocial/swagger_yard-rails)**: Seems abandoned, but serves as inspiration\n- **[Rswag](https://github.com/rswag/rswag)**: Not automatic, depends on RSpec; Many developers now use Minitest as it's the default test framework\n- **[grape-swagger](https://github.com/ruby-grape/grape-swagger)**: Requires Grape\n- **[rspec_api_documentation](https://github.com/zipmark/rspec_api_documentation)**: Requires RSpec and a command to generate the docs\n\n## What Sets OasRails Apart?\n\n- **Dynamic**: No command required to generate docs\n- **Simple**: Complement default documentation with a few comments; no need to learn a complex DSL\n- **Pure Ruby on Rails APIs**: No additional frameworks needed (e.g., Grape, RSpec)\n\n## 📽️ Motivation\n\nAfter experiencing the interactive documentation in Python's fast-api framework, I sought similar functionality in Ruby on Rails. Unable to find a suitable solution, I [asked on Stack Overflow](https://stackoverflow.com/questions/71947018/is-there-a-way-to-generate-an-interactive-documentation-for-rails-apis) years ago. Now, with some free time while freelancing as an API developer, I decided to build my own tool.\n\n**Note: This is not yet a production-ready solution. The code may be rough and behave unexpectedly, but I am actively working on improving it. If you like the idea, please consider contributing to its development.**\n\nThe goal is to minimize the effort required to create comprehensive documentation. By following REST principles in Rails, we believe this is achievable. You can enhance the documentation using [Yard](https://yardoc.org/) tags.\n\n## Documentation\n\nFor see how to install, configure and use OasRails please refere to the [OasRailsBook](http://a-chacon.com/oas_rails)\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**. If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\". Don't forget to give the project a star⭐! Thanks again!\n\nIf you plan a big feature, first open an issue to discuss it before any development.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThe gem is available as open source under the terms of the [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html#license-text).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-chacon%2Foas_rails","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa-chacon%2Foas_rails","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa-chacon%2Foas_rails/lists"}