Module: Apipie
- Extended by:
- Helpers
- Defined in:
- lib/apipie/dsl_definition.rb,
lib/apipie/errors.rb,
lib/apipie/markup.rb,
lib/apipie/helpers.rb,
lib/apipie/railtie.rb,
lib/apipie/routing.rb,
lib/apipie/version.rb,
lib/apipie/extractor.rb,
lib/apipie/validator.rb,
lib/apipie/application.rb,
lib/apipie/apipie_module.rb,
lib/apipie/configuration.rb,
lib/apipie/see_description.rb,
lib/apipie/extractor/writer.rb,
lib/apipie/routes_formatter.rb,
lib/apipie/error_description.rb,
lib/apipie/param_description.rb,
lib/apipie/static_dispatcher.rb,
lib/apipie/extractor/recorder.rb,
lib/apipie/method_description.rb,
lib/apipie/extractor/collector.rb,
lib/apipie/resource_description.rb,
lib/generators/apipie/views_generator.rb,
app/controllers/apipie/apipies_controller.rb,
lib/apipie/middleware/checksum_in_headers.rb,
lib/generators/apipie/install/install_generator.rb
Overview
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
Defined Under Namespace
Modules: DSL, Extractor, Helpers, Markup, Middleware, Routing, Validator Classes: ApipiesController, Application, Configuration, DefinedParamError, Error, ErrorDescription, FileHandler, InstallGenerator, MethodDescription, ParamDescription, ParamError, ParamInvalid, ParamMissing, Railtie, ResourceDescription, RoutesFormatter, SeeDescription, StaticDispatcher, UnknownCode, UnknownParam, ViewsGenerator
Constant Summary collapse
- VERSION =
'0.5.6'
Instance Attribute Summary
Attributes included from Helpers
Class Method Summary collapse
- .api_base_url(version = nil) ⇒ Object
- .api_base_url_version_valid?(version) ⇒ Boolean
- .app ⇒ Object
-
.app_info(version = nil, lang = nil) ⇒ Object
get application description for given or default version.
- .app_info_version_valid?(version) ⇒ Boolean
- .configuration ⇒ Object
- .configure {|configuration| ... } ⇒ Object
- .debug(message) ⇒ Object
-
.method_missing(method, *args, &block) ⇒ Object
all calls delegated to Apipie::Application instance.
- .record(record) ⇒ Object
- .to_json(version = nil, resource_name = nil, method_name = nil, lang = nil) ⇒ Object
Methods included from Helpers
full_url, include_javascripts, include_stylesheets, label_class_for_error, markup_to_html, request_script_name, request_script_name=
Class Method Details
.api_base_url(version = nil) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# 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) ⇒ Boolean
60 61 62 |
# 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 ⇒ Object
7 8 9 |
# File 'lib/apipie/apipie_module.rb', line 7 def self.app @application ||= Apipie::Application.new end |
.app_info(version = nil, lang = nil) ⇒ Object
get application description for given or default version
34 35 36 37 38 39 40 41 42 43 44 |
# 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) ⇒ Boolean
56 57 58 |
# 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 ⇒ Object
25 26 27 |
# File 'lib/apipie/apipie_module.rb', line 25 def self.configuration @configuration ||= Configuration.new end |
.configure {|configuration| ... } ⇒ Object
21 22 23 |
# File 'lib/apipie/apipie_module.rb', line 21 def self.configure yield configuration end |
.debug(message) ⇒ Object
29 30 31 |
# File 'lib/apipie/apipie_module.rb', line 29 def self.debug() puts if Apipie.configuration.debug end |
.method_missing(method, *args, &block) ⇒ Object
all calls delegated to Apipie::Application instance
17 18 19 |
# 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) ⇒ Object
64 65 66 |
# 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) ⇒ Object
11 12 13 14 |
# 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 |