module Apipie
Middleware for rails app that adds checksum of JSON in the response headers which can help client to realize when JSON has changed
Add the following to your application.rb
require 'apipie/middleware/checksum_in_headers' # Add JSON checksum in headers for smarter caching config.middleware.use "Apipie::Middleware::ChecksumInHeaders"
And in your apipie initializer allow checksum calculation
Apipie.configuration.update_checksum = true
and reload documentation
Apipie.reload_documentation
By default the header is added to requests on /api and /apipie only It can be changed with
Apipie.configuration.checksum_path = ['/prefix/api']
If set to nil the header is added always
Constants
- VERSION
Public Class Methods
api_base_url(version = nil)
click to toggle source
# File lib/apipie/apipie_module.rb, line 46 def self.api_base_url(version = nil) if api_base_url_version_valid? version self.configuration.api_base_url[version] elsif api_base_url_version_valid? Apipie.configuration.default_version self.configuration.api_base_url[Apipie.configuration.default_version] else "/api" end end
api_base_url_version_valid?(version)
click to toggle source
# File lib/apipie/apipie_module.rb, line 60 def self.api_base_url_version_valid?(version) version && self.configuration.api_base_url.has_key?(version) end
app()
click to toggle source
# File lib/apipie/apipie_module.rb, line 7 def self.app @application ||= Apipie::Application.new end
app_info(version = nil, lang = nil)
click to toggle source
get application description for given or default version
# File lib/apipie/apipie_module.rb, line 34 def self.app_info(version = nil, lang = nil) info = if app_info_version_valid? version translate(self.configuration.app_info[version], lang) elsif app_info_version_valid? Apipie.configuration.default_version translate(self.configuration.app_info[Apipie.configuration.default_version], lang) else "Another API description" end Apipie.markup_to_html info end
app_info_version_valid?(version)
click to toggle source
# File lib/apipie/apipie_module.rb, line 56 def self.app_info_version_valid?(version) version && self.configuration.app_info.has_key?(version) end
configuration()
click to toggle source
# File lib/apipie/apipie_module.rb, line 25 def self.configuration @configuration ||= Configuration.new end
configure() { |configuration| ... }
click to toggle source
# File lib/apipie/apipie_module.rb, line 21 def self.configure yield configuration end
debug(message)
click to toggle source
# File lib/apipie/apipie_module.rb, line 29 def self.debug(message) puts message if Apipie.configuration.debug end
method_missing(method, *args, &block)
click to toggle source
all calls delegated to Apipie::Application instance
Calls superclass method
# File lib/apipie/apipie_module.rb, line 17 def self.method_missing(method, *args, &block) app.respond_to?(method) ? app.send(method, *args, &block) : super end
record(record)
click to toggle source
# File lib/apipie/apipie_module.rb, line 64 def self.record(record) Apipie::Extractor.start record end
to_json(version = nil, resource_name = nil, method_name = nil, lang = nil)
click to toggle source
# File lib/apipie/apipie_module.rb, line 11 def self.to_json(version = nil, resource_name = nil, method_name = nil, lang = nil) version ||= Apipie.configuration.default_version app.to_json(version, resource_name, method_name, lang) end