API Anatomy • Server to parse & handle requests • Routing to manage endpoints • Validation to sanitize user input • Persistence to store & retrieve data
Basejump • Visual tool for prototyping API backends • Dynamic routing middleware for attaching queries to endpoints • Powered by declarative JSON description format
Basejump Router • Database agnostic routing middleware • Uses Node’s VM module to execute code • Integrates seamlessly with Koa and Socket.io • Swagger-based format to describe routes and actions
Swagger • Standard format for describing APIs — can use YAML or JSON • Uses JSON Schema for validation • Supported by many tools & frameworks • Extensible via vendor properties
Embed Basejump • Embed in your own Node app • Pass custom objects into the execution context • Inherit and override the request handler • Custom pre & post processing on input and output
Feature Roadmap • Support for embedding in Express • Interactive Schema editing • Pluggable view system • Route collections and blueprints • Authentication and user management • Live API debugging
Feature Ideas • Generate client libraries for mobile & web • Use schemas to generate input forms & data dashboard • Support for file uploads & multipart mime • Automatically generate tables and indexes from schemas
Basejump & Horizon • Embed Basejump and Horizon middleware in the same Node app • Expose Basejump routes through Horizon custom endpoint • Converge authentication and schema validation?