فهرست منبع

fix: HTTP API /api/v5/publish schema

The schema for the /api/v5/publish HTTP API endpoint was incorrect.
For 400 (Bad Request) error it cannot return a list but the incorrect
schema declared that the response could include a list.

Fixes:
https://emqx.atlassian.net/browse/EMQX-10837
https://github.com/emqx/emqx/issues/11488
Kjell Winblad 2 سال پیش
والد
کامیت
3ffbb7decf
1فایلهای تغییر یافته به همراه5 افزوده شده و 3 حذف شده
  1. 5 3
      apps/emqx_management/src/emqx_mgmt_api_publish.erl

+ 5 - 3
apps/emqx_management/src/emqx_mgmt_api_publish.erl

@@ -57,7 +57,7 @@ schema("/publish") ->
             responses => #{
                 ?ALL_IS_WELL => hoconsc:mk(hoconsc:ref(?MODULE, publish_ok)),
                 ?PARTIALLY_OK => hoconsc:mk(hoconsc:ref(?MODULE, publish_error)),
-                ?BAD_REQUEST => bad_request_schema(),
+                ?BAD_REQUEST => hoconsc:mk(hoconsc:ref(?MODULE, bad_request)),
                 ?DISPATCH_ERROR => hoconsc:mk(hoconsc:ref(?MODULE, publish_error))
             }
         }
@@ -196,11 +196,13 @@ fields(bad_request) ->
     [
         {code,
             hoconsc:mk(string(), #{
-                desc => <<"BAD_REQUEST">>
+                desc => <<"BAD_REQUEST">>,
+                example => ?RC_TOPIC_NAME_INVALID
             })},
         {message,
             hoconsc:mk(binary(), #{
-                desc => ?DESC(error_message)
+                desc => ?DESC(error_message),
+                example => to_binary(emqx_reason_codes:name(?RC_TOPIC_NAME_INVALID))
             })}
     ].