Praxis is a framework that takes a different approach to creating APIs, an approach that treats both designers and implementors as first class citizens and hold both their hands throughout the API building process. With Praxis you create an API by iterating through the design, review and implementation phases.
Building APIs with Praxis will result in faster developer times, and result in very precise documentation that is apt for both human (web browsable) or machine consumption (JSON spec files). A very important feature of Praxis is that while the design and implementation phases are done independently, the resulting system will still ensure that they are always consistent and enforced at all times. This enforcement will automatically hold true throughout any number of iterations of the design-review-implementation phases. You can, once and for all, stop worrying about re-generating server code and keeping it in sync with any change to your code and or docs that you make.
# Install the praxis gem
gem install praxis
# Generate a praxis application named my-app in ./my-app
praxis generate my-app
# Run it!
cd my-app
bundle
rackup
Praxis is a practical implementation of a few guiding principles. In part:
REST APIs should follow consistent design in patterns and action semantics. This includes software patterns for creating applications like code organization; application patterns like logging, middleware, query filtering, and application bootstrapping; and API routing structures and REST verb semantics for exposed resources.
Applications should be able to focus on application logic, avoiding most of the boilerplate code required to build API services.
Applications should maintain separation of concerns between API design and implementation. An API designer should be able to fully construct an API skeleton without writing a single line of application code.
It should be possible to generate consistent and detailed documentation. This should be done by inspecting real code, to avoid relying on humans to do a good job keeping the docs and the code in sync everytime they make code changes.
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)
And follow us on twitter: @praxisapi
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.
Praxis requires Ruby 2.1.0 or greater.
This software is released under the MIT License. Please see LICENSE for further details.
Copyright (c) 2014 RightScale