fix(dashboard): fix swagger spec generation
This commit is contained in:
parent
d298d603ac
commit
5bfd690df6
|
@ -417,13 +417,17 @@ init_prop(Keys, Init, Type) ->
|
||||||
fun(Key, Acc) ->
|
fun(Key, Acc) ->
|
||||||
case hocon_schema:field_schema(Type, Key) of
|
case hocon_schema:field_schema(Type, Key) of
|
||||||
undefined -> Acc;
|
undefined -> Acc;
|
||||||
Schema -> Acc#{Key => to_bin(Schema)}
|
Schema -> Acc#{Key => format_prop(Key, Schema)}
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
Init,
|
Init,
|
||||||
Keys
|
Keys
|
||||||
).
|
).
|
||||||
|
|
||||||
|
format_prop(deprecated, Value) when is_boolean(Value) -> Value;
|
||||||
|
format_prop(deprecated, _) -> true;
|
||||||
|
format_prop(_, Schema) -> to_bin(Schema).
|
||||||
|
|
||||||
trans_required(Spec, true, _) -> Spec#{required => true};
|
trans_required(Spec, true, _) -> Spec#{required => true};
|
||||||
trans_required(Spec, _, path) -> Spec#{required => true};
|
trans_required(Spec, _, path) -> Spec#{required => true};
|
||||||
trans_required(Spec, _, _) -> Spec.
|
trans_required(Spec, _, _) -> Spec.
|
||||||
|
|
|
@ -94,6 +94,30 @@ t_object(_Config) ->
|
||||||
validate("/object", Spec, Refs),
|
validate("/object", Spec, Refs),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
|
t_deprecated(_Config) ->
|
||||||
|
?assertMatch(
|
||||||
|
[
|
||||||
|
#{
|
||||||
|
<<"emqx_swagger_requestBody_SUITE.deprecated_ref">> :=
|
||||||
|
#{
|
||||||
|
<<"properties">> :=
|
||||||
|
[
|
||||||
|
{<<"tag1">>, #{
|
||||||
|
deprecated := true
|
||||||
|
}},
|
||||||
|
{<<"tag2">>, #{
|
||||||
|
deprecated := true
|
||||||
|
}},
|
||||||
|
{<<"tag3">>, #{
|
||||||
|
deprecated := false
|
||||||
|
}}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
emqx_dashboard_swagger:components([{?MODULE, deprecated_ref}], #{})
|
||||||
|
).
|
||||||
|
|
||||||
t_nest_object(_Config) ->
|
t_nest_object(_Config) ->
|
||||||
GoodRef = <<"#/components/schemas/emqx_swagger_requestBody_SUITE.good_ref">>,
|
GoodRef = <<"#/components/schemas/emqx_swagger_requestBody_SUITE.good_ref">>,
|
||||||
Spec = #{
|
Spec = #{
|
||||||
|
@ -812,7 +836,13 @@ fields(sub_fields) ->
|
||||||
{init_file, fun init_file/1}
|
{init_file, fun init_file/1}
|
||||||
],
|
],
|
||||||
desc => <<"test sub fields">>
|
desc => <<"test sub fields">>
|
||||||
}.
|
};
|
||||||
|
fields(deprecated_ref) ->
|
||||||
|
[
|
||||||
|
{tag1, mk(binary(), #{desc => <<"tag1">>, deprecated => {since, "4.3.0"}})},
|
||||||
|
{tag2, mk(binary(), #{desc => <<"tag2">>, deprecated => true})},
|
||||||
|
{tag3, mk(binary(), #{desc => <<"tag3">>, deprecated => false})}
|
||||||
|
].
|
||||||
|
|
||||||
enable(type) -> boolean();
|
enable(type) -> boolean();
|
||||||
enable(desc) -> <<"Whether to enable tls psk support">>;
|
enable(desc) -> <<"Whether to enable tls psk support">>;
|
||||||
|
|
|
@ -858,7 +858,8 @@ stop_slave(Node) ->
|
||||||
ok = slave:stop(Node),
|
ok = slave:stop(Node),
|
||||||
?assertEqual([node()], mria_mnesia:running_nodes()),
|
?assertEqual([node()], mria_mnesia:running_nodes()),
|
||||||
?assertEqual([], nodes()),
|
?assertEqual([], nodes()),
|
||||||
ok.
|
_ = application:stop(mria),
|
||||||
|
ok = application:start(mria).
|
||||||
|
|
||||||
leave_cluster() ->
|
leave_cluster() ->
|
||||||
try mnesia_hook:module_info() of
|
try mnesia_hook:module_info() of
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Fix Swagger API schema generation. `deprecated` metadata field is now always boolean, as [Swagger specification](https://swagger.io/specification/) suggests.
|
|
@ -0,0 +1 @@
|
||||||
|
修复 Swagger API 生成时,`deprecated` 元数据字段未按照[标准](https://swagger.io/specification/)建议的那样始终为布尔值的问题。
|
Loading…
Reference in New Issue