Module: Alchemy::JsonApi

Extended by:
JsonApi
Included in:
JsonApi
Defined in:
lib/alchemy/json_api.rb,
lib/alchemy/json_api/engine.rb,
lib/alchemy/json_api/version.rb,
lib/alchemy/json_api/ingredient_serializer.rb,
app/controllers/alchemy/json_api/base_controller.rb,
app/serializers/alchemy/json_api/base_serializer.rb,
app/serializers/alchemy/json_api/node_serializer.rb,
app/serializers/alchemy/json_api/page_serializer.rb,
app/controllers/alchemy/json_api/nodes_controller.rb,
app/controllers/alchemy/json_api/pages_controller.rb,
app/serializers/alchemy/json_api/element_serializer.rb,
app/serializers/alchemy/json_api/language_serializer.rb,
app/controllers/alchemy/json_api/admin/pages_controller.rb,
app/controllers/alchemy/json_api/layout_pages_controller.rb,
app/serializers/alchemy/json_api/ingredient_file_serializer.rb,
app/serializers/alchemy/json_api/ingredient_html_serializer.rb,
app/serializers/alchemy/json_api/ingredient_link_serializer.rb,
app/serializers/alchemy/json_api/ingredient_node_serializer.rb,
app/serializers/alchemy/json_api/ingredient_page_serializer.rb,
app/serializers/alchemy/json_api/ingredient_text_serializer.rb,
app/serializers/alchemy/json_api/ingredient_audio_serializer.rb,
app/serializers/alchemy/json_api/ingredient_video_serializer.rb,
app/serializers/alchemy/json_api/ingredient_select_serializer.rb,
app/controllers/alchemy/json_api/admin/layout_pages_controller.rb,
app/serializers/alchemy/json_api/ingredient_boolean_serializer.rb,
app/serializers/alchemy/json_api/ingredient_picture_serializer.rb,
app/serializers/alchemy/json_api/ingredient_datetime_serializer.rb,
app/serializers/alchemy/json_api/ingredient_headline_serializer.rb,
app/serializers/alchemy/json_api/ingredient_richtext_serializer.rb,
app/models/alchemy/json_api/page.rb

Defined Under Namespace

Modules: Admin, IngredientSerializer Classes: BaseController, BaseSerializer, ElementSerializer, Engine, IngredientAudioSerializer, IngredientBooleanSerializer, IngredientDatetimeSerializer, IngredientFileSerializer, IngredientHeadlineSerializer, IngredientHtmlSerializer, IngredientLinkSerializer, IngredientNodeSerializer, IngredientPageSerializer, IngredientPictureSerializer, IngredientRichtextSerializer, IngredientSelectSerializer, IngredientTextSerializer, IngredientVideoSerializer, LanguageSerializer, LayoutPagesController, NodeSerializer, NodesController, Page, PageSerializer, PagesController

Constant Summary collapse

VERSION =
"3.0.0"

Instance Method Summary collapse

Instance Method Details

#key_transformObject

FastJsonapi key_transform

Default :underscore # “some_key” => “some_key”



26
27
28
# File 'lib/alchemy/json_api.rb', line 26

def key_transform
  @_key_transform || :underscore
end

#key_transform=(value) ⇒ Object

Set FastJsonapi key_transform

Supported transformations:

:camel # “some_key” => “SomeKey” :camel_lower # “some_key” => “someKey” :dash # “some_key” => “some-key” :underscore # “some_key” => “some_key”



19
20
21
# File 'lib/alchemy/json_api.rb', line 19

def key_transform=(value)
  @_key_transform = value
end

#page_cache_max_ageObject

HTTP Cache-Control max-age

Can be set as ‘ALCHEMY_JSON_API_CACHE_DURATION` env var

Default 600 (seconds)



35
36
37
# File 'lib/alchemy/json_api.rb', line 35

def page_cache_max_age
  @_page_cache_max_age ||= ENV.fetch("ALCHEMY_JSON_API_CACHE_DURATION", 600).to_i
end

#page_cache_max_age=(max_age) ⇒ Object



39
40
41
# File 'lib/alchemy/json_api.rb', line 39

def page_cache_max_age=(max_age)
  @_page_cache_max_age = max_age
end

#page_caching_optionsObject

HTTP Cache-Control options

Set any of the ActionController::ConditionalGet#expires_in options

See api.rubyonrails.org/classes/ActionController/ConditionalGet.html#method-i-expires_in

Default ‘true`



50
51
52
53
54
# File 'lib/alchemy/json_api.rb', line 50

def page_caching_options
  @_page_caching_options ||= {
    must_revalidate: true
  }
end

#page_caching_options=(options) ⇒ Object



56
57
58
# File 'lib/alchemy/json_api.rb', line 56

def page_caching_options=(options)
  @_page_caching_options = options
end