A Ruby framework for designing and implementing modern REST APIs with automatic OpenAPI documentation and GraphQL-like field selection.
Praxis is a Ruby framework for building modern service APIs with a focus on both design and implementation. It solves the problem of maintaining accurate API documentation and providing flexible querying capabilities by automatically generating OpenAPI specs from code and allowing GraphQL-like field selection over REST endpoints.
Development teams building RESTful APIs in Ruby who value design-first approaches, automated documentation, and client flexibility without sacrificing REST simplicity.
Developers choose Praxis for its unique combination of design-first workflow, automatic OpenAPI documentation, GraphQL-inspired field selection on REST endpoints, and proven production reliability since 2014.
Praxis is a framework that focuses on both the design and implementation aspects of creating APIs.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Generates OpenAPI 3.x specifications directly from code, ensuring documentation is always accurate and up-to-date, as highlighted in the README's feature on truthful docs.
Allows clients to select specific fields using GraphQL syntax on REST endpoints, providing query efficiency without requiring a full GraphQL server implementation.
Enables API design visualization upfront with automatic validation from specs, reducing implementation errors and improving consistency, as per the design-first philosophy.
Battle-tested in production since 2014, offering reliability and confidence for mission-critical applications, as noted in the hardened and battle-tested feature.
Requires Ruby 2.7.0 or higher, which can be a barrier for teams on older versions or in environments with strict dependency controls, limiting backward compatibility.
Has a smaller community and fewer resources compared to mainstream frameworks, with support primarily through mailing lists rather than modern chat platforms, as seen in the deprecated Slack link.
The design-first approach imposes a specific development methodology that may not align with all team workflows or agile practices, potentially slowing down iterative changes.