Open
Description
The type spec for params
and body_params
is params() :: %{required(binary()) => param()}
(https://hexdocs.pm/plug/1.7.2/Plug.Conn.html#t:params/0), but OpenApiSpex turns them into something like %{__struct__: module(), required(atom()) => term()}
, or something else that doesn't match the spec. This causes dialyzer complaints in the controller actions for some situations.
IMO, OpenApiSpex shouldn't change conn.params
or conn.body_params
, as it breaks the contract with Plug. Instead, Spex can put the casted values in the :private
attribute of the %Conn{}
.