Module: Treaty::Action::Versions::DSL
- Included in:
- Base
- Defined in:
- lib/treaty/action/versions/dsl.rb
Overview
DSL module for defining API versions in treaty classes.
Purpose
Provides the version class method for defining API versions.
Each version can have its own request/response schema, executor,
summary, and deprecation status.
Usage
Included in:
- Treaty::Action::Base (as core DSL functionality)
DSL Methods
When included, provides:
version- Define a new API version with configuration blockcollection_of_versions- Access all defined versions
Version Definition
class Posts::CreateTreaty < ApplicationTreaty
version 1, default: true do
summary "Initial version"
request do
object :post do
string :title, :required
end
end
response 201 do
object :post do
string :id
end
end
delegate_to Posts::CreateService
end
version 2 do
summary "Added tags"
deprecated { ENV["V2_DEPRECATED"] == "true" }
# ...
end
end
Validation
Validates that only one version is marked as default.
Raises VersionMultipleDefaults if multiple defaults detected.
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
-
.included(base) ⇒ Object
Hook called when module is included.
Class Method Details
.included(base) ⇒ Object
Hook called when module is included
61 62 63 64 |
# File 'lib/treaty/action/versions/dsl.rb', line 61 def self.included(base) base.extend(ClassMethods) base.include(Workspace) end |