module Sinatra::API
TODO: accept nested parameters
Constants
- ResourcePrefix
- VERSION
Attributes
resource_aliases[RW]
Public Class Methods
alias_resource(original, resource_alias)
click to toggle source
# File lib/sinatra/api/helpers.rb, line 269 def self.alias_resource(original, resource_alias) @@resource_aliases ||= {} @@resource_aliases[original.to_sym] ||= [] @@resource_aliases[original.to_sym] << resource_alias.to_s puts "API resource #{original} is now aliased as #{resource_alias}" end
aliases_for(resource)
click to toggle source
# File lib/sinatra/api/helpers.rb, line 277 def self.aliases_for(resource) @@resource_aliases ||= {} @@resource_aliases[resource.to_sym] || [] end
registered(app)
click to toggle source
# File lib/sinatra/api/helpers.rb, line 235 def self.registered(app) @@api_resource_aliases ||= {} app.helpers Helpers app.before do @api = { required: {}, optional: {} } @parent_resource = nil if api_call? request.body.rewind body = request.body.read.to_s || '' unless body.empty? begin; params.merge!(::JSON.parse(body)) # puts params.inspect # puts request.path rescue ::JSON::ParserError => e puts e.message puts e.backtrace halt 400, "Malformed JSON content" end end end end app.set(:requires) do |*resources| condition do @required = resources.collect { |r| r.to_s } @required.each { |r| @parent_resource = __api_locate_resource(r, @parent_resource) } end end end