make some dsl standalone and import as plugin.
plugin defined in the server module,
defmodule MyServer do
use Maru.Server, otp_app: :my_api
plugin Version, using: :param, parameter: "v"
end
when plugin defined in the server, we can use custom dsl in router code.
The version dsl is defined by plugin.
defmodule MyRouter do
use MyServer
version "v1"
end
Plugin only works for routers use MyServer.
keep such DSLs internal
prefix
namespaces/route_param
desc
params
get/post
plug/plug_overridable
rescue_from
move such DSLs to plugin
version
mount
extend
pipeline
make some dsl standalone and import as plugin.
plugin defined in the server module,
when plugin defined in the server, we can use custom dsl in router code.
The
versiondsl is defined by plugin.Plugin only works for routers
use MyServer.keep such DSLs internal
move such DSLs to plugin