Description
Praxis is a framework for both designing and implementing APIs.
An important part of the framework is geared towards the design aspect of building an API. This functionality empowers architects with tools to design every last aspect of their API, resulting in a complete, web-browsable documentation, which includes automatic generation of examples for resources, parameters, headers, etc...as well as requests and responses for the supported encodings. The design process is iterative, and flows from defining new resources, parameters, etc...to reviewing the resulting docs (usually with some of the potential clients of the API), back to updating the design based on feedback, or expanding it with more resources. The design language (i.e. DSL) of Praxis follows a clean 'ruby-type-syntax' and its final outcome is to generates an output that is both a set of schema documents as well as a web-based API browser (driven by those schemas). This allows Praxis to design APIs that can potentially be implemented in any language.
Another important part of the framework is geared towards helping in the implementation of the API service. In particular, Praxis provides help to Ruby developers for building a service conforming to the designed API. Aside from Ruby there is also sister-project called Goa that assists in implementing Praxis-like design API using Golang. Since the API design generates schema files very similar in nature to other API document formats like (Swagger, Google Discovery, RAML, etc...) supporting other implementation languages could be easily accomplished in the future by building converters to/from them.
The part of the framework that helps with the ruby service implementation takes an approach that is different from other existing ruby (micro)frameworks such as Grape, Sinatra, Scorched, Lotus or even RailsAPI (now part of Rails). Instead of being developer-centric, it takes an integrated approach treating both designers and implementors as first class citizens throughout the complete API building process. With Praxis you create an API by iterating through the design, review and implementation phases. While Praxis can help Ruby developers in a lot of aspects involved in building a service, the framework is completely componentized as to allow developers to pick and choose which parts to use, which ones not to use, and which other technologies to integrate with. The framework provides help in many areas, for example: all aspects of request and response validation, automatic type-coercion, consistent error-responses, routing and url generation, advanced template/media-type definition and rendering, domain-modeling, optional database ORM (for high-perfomance large datasets), DB integration (with an efficient identityMap), a plugin and extensible framework to easily hook into, available integrations such as newrelic, statsd, etc...
There is a long list of benefits that come from using Praxis. From those, here are a couple of the salient themes:
Praxis alternatives and similar gems
Based on the "API Builder" category.
Alternatively, view Praxis alternatives based on common mentions on social networks and blogs.
-
Her
Her is an ORM (Object Relational Mapper) that maps REST resources to Ruby objects. It is designed to build applications that are powered by a RESTful API instead of a database. -
YASL
Yet Another Serialization Library - A pure Ruby auto-serialization library that works across different Ruby implementations like Opal and JRuby as an automatic alternative to YAML/Marshal. Unlike Marshal, it does not raise errors for unserializable objects, thus provides a highly productive friction-free auto-serialization experience.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Praxis or a related project?
Popular Comparisons
README
Praxis

A fast and highly efficient paradigm to build beautiful service APIs
Praxis is built to empower development teams with extreme productivty tools to create fast, and modern APIs that will delight their customers. Some of the salient features are:
Truthful & Beautiful Docs: Automatically generate Open API 3.x documents from the actual functioning code, and rest assured they're always correct.
GraphQL Flexibility, REST Simplicity: Allow customers to specify which fields they want to receive using the GraphQL syntax, but exposing them through well known REST endpoints.
Fast Runtime and Blazing Fast Development: Deploy your API using one of the best Ruby performing frameworks and take advantage of an unprecedented development speed.
API Design-First Philosophy: Craft and visualize your API design upfont, without writing a single line of code. Forget about implementing any of the API validations, the framework fully takes care of it from your design specification.
Feature Rich yet Fully Customizable: Fully take advantage of the tons of best practices, proven methods, standards and features that the frameworks comes with, or pick and choose only the ones you want to enable.
Hardnened & Battle Tested: Rest assured you'll get the advertised results as this framework has been deployed in production environments since before 2014.
Quickstart
# Install the praxis gem
gem install praxis
# Generate and bundle a praxis application named my-app in ./my-app
praxis example my-app && cd my-app && bundle
# Run it!
rackup
Or check the getting started tutorial and reference docs at https://www.praxis-framework.io all that Praxis has to offer.
Mailing List
Join our Google Groups for discussion, support and announcements.
- praxis-support (support for people using Praxis)
- praxis-announce (announcements)
- praxis-development (discussion about the development of Praxis itself)
Join our slack support and general announcements channel for on-the-spot answers to your questions:
- To join our slack chat please go to: http://praxis-framework.herokuapp.com and sign in for an account.
- Once you have an account, hop onto the chat at http://praxis-framework.slack.com
And follow us on twitter: @praxisapi
Contributions
Contributions to make Praxis better are welcome. Please refer to CONTRIBUTING for further details on what contributions are accepted and how to go about contributing.
Requirements
Praxis requires Ruby 2.5.0 or greater.
License
This software is released under the MIT License. Please see [LICENSE](LICENSE) for further details.
This framework was initially developed and used at RightScale, and was open sourced in 2014, after a few years of its production use.
*Note that all licence references and agreements mentioned in the Praxis README section above
are relevant to that project's source code only.