Introducing Sinja: RESTful, {json:api}-compliant web services in Sinatra


Hi folks,

I’d like to quickly introduce Sinja, a new “framework” for rapidly developing {json:api}-compliant, read-and-write web services in Ruby. (It’s a Sinatra extension and it leverages the excellent JSONAPI::Serializers gem for assembling response payloads, so it doesn’t completely reinvent the wheel; it’s more glue than framework.) It’s DAL/ORM-agnostic, so you can use your favorite library, or none at all, or simply reuse existing models from Rails or what have you. It includes a simple role-based authorization scheme; support for client-generated IDs, patchless clients, and coalesced find requests; error-handling; hooks for filtering, sorting, and paging; and more.

I’ve written a small demo app and a fairly comprehensive test suite, and I’m currently working on a flagship use case, but I want to be clear that this is still very new software that has not yet been fully-vetted. v1.1pre is available today and I’m looking for early adopters and testers to help me break it in (or just break it). I’m also looking for some community contributions, including documentation and code snippets for other DAL/ORM libraries (only Sequel has been put through the paces so far).

Thank you in advance for any feedback! You can find me here, on Twitter as mwpastore (warning: some political content), or the EmberJS Community Slack if you’d like to chat.


(Cross-posted to the Ember.JS Discussion Forum.)


Great! You should send in a PR for the implementations page if you haven’t


I’ve already done so! Thanks Steve.