From bf67fa1be1b07f58ea6457c5b378a98fc6f80027 Mon Sep 17 00:00:00 2001 From: DDDHuang <904897578@qq.com> Date: Tue, 24 Aug 2021 20:58:21 +0800 Subject: [PATCH] fix: generate topic metrics api & delayed message api path --- apps/emqx_modules/src/emqx_delayed_api.erl | 6 +-- .../src/emqx_topic_metrics_api.erl | 37 ++++++------------- 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/apps/emqx_modules/src/emqx_delayed_api.erl b/apps/emqx_modules/src/emqx_delayed_api.erl index 27b8f44ea..f45519134 100644 --- a/apps/emqx_modules/src/emqx_delayed_api.erl +++ b/apps/emqx_modules/src/emqx_delayed_api.erl @@ -93,7 +93,7 @@ status_api() -> } } }, - {"/mqtt/delayed_messages/status", Metadata, status}. + {"/mqtt/delayed", Metadata, status}. delayed_messages_api() -> Metadata = #{ @@ -104,7 +104,7 @@ delayed_messages_api() -> } } }, - {"/mqtt/delayed_messages", Metadata, delayed_messages}. + {"/mqtt/delayed/messages", Metadata, delayed_messages}. delayed_message_api() -> Metadata = #{ @@ -124,7 +124,7 @@ delayed_message_api() -> } } }, - {"/mqtt/delayed_messages/:id", Metadata, delayed_message}. + {"/mqtt/delayed/messages/:id", Metadata, delayed_message}. %%-------------------------------------------------------------------- %% HTTP API diff --git a/apps/emqx_modules/src/emqx_topic_metrics_api.erl b/apps/emqx_modules/src/emqx_topic_metrics_api.erl index 4f7885254..e63af61f6 100644 --- a/apps/emqx_modules/src/emqx_topic_metrics_api.erl +++ b/apps/emqx_modules/src/emqx_topic_metrics_api.erl @@ -27,8 +27,7 @@ -export([api_spec/0]). --export([ list_topic/2 - , list_topic_metrics/2 +-export([ list_topic_metrics/2 , operate_topic_metrics/2 , reset_all_topic_metrics/2 , reset_topic_metrics/2 @@ -43,7 +42,6 @@ api_spec() -> { [ - list_topic_api(), list_topic_metrics_api(), get_topic_metrics_api(), reset_all_topic_metrics_api(), @@ -77,17 +75,6 @@ properties() -> {'messages.qos2.out.rate', number}]} ]). - -list_topic_api() -> - Props = properties([{topic, string}]), - MetaData = #{ - get => #{ - description => <<"List topic">>, - responses => #{<<"200">> => object_array_schema(Props, <<"List topic">>)} - } - }, - {"/mqtt/topic_metrics", MetaData, list_topic}. - list_topic_metrics_api() -> MetaData = #{ get => #{ @@ -97,7 +84,7 @@ list_topic_metrics_api() -> } } }, - {"/mqtt/topic_metrics/metrics", MetaData, list_topic_metrics}. + {"/mqtt/topic_metrics", MetaData, list_topic_metrics}. get_topic_metrics_api() -> MetaData = #{ @@ -121,7 +108,7 @@ get_topic_metrics_api() -> responses => #{ <<"200">> => schema(<<"Deregister topic metrics">>)} } }, - {"/mqtt/topic_metrics/metrics/:topic", MetaData, operate_topic_metrics}. + {"/mqtt/topic_metrics/:topic", MetaData, operate_topic_metrics}. reset_all_topic_metrics_api() -> MetaData = #{ @@ -133,7 +120,7 @@ reset_all_topic_metrics_api() -> {"/mqtt/topic_metrics/reset", MetaData, reset_all_topic_metrics}. reset_topic_metrics_api() -> - Path = "/mqtt/topic_metrics/reset/:topic", + Path = "/mqtt/topic_metrics/:topic/reset", MetaData = #{ put => #{ description => <<"Reset topic metrics">>, @@ -148,18 +135,17 @@ topic_param() -> name => topic, in => path, required => true, + description => <<"Notice: Topic string url must encode">>, schema => #{type => string} }. %%-------------------------------------------------------------------- %% api callback -list_topic(get, _) -> - list_topics(). - list_topic_metrics(get, _) -> list_metrics(). -operate_topic_metrics(Method, #{bindings := #{topic := Topic}}) -> +operate_topic_metrics(Method, #{bindings := #{topic := Topic0}}) -> + Topic = decode_topic(Topic0), case Method of get -> get_metrics(Topic); @@ -172,14 +158,15 @@ operate_topic_metrics(Method, #{bindings := #{topic := Topic}}) -> reset_all_topic_metrics(put, _) -> reset(). -reset_topic_metrics(put, #{bindings := #{topic := Topic}}) -> +reset_topic_metrics(put, #{bindings := #{topic := Topic0}}) -> + Topic = decode_topic(Topic0), reset(Topic). +decode_topic(Topic) -> + uri_string:percent_decode(Topic). + %%-------------------------------------------------------------------- %% api apply -list_topics() -> - {200, emqx_topic_metrics:all_registered_topics()}. - list_metrics() -> {200, emqx_topic_metrics:metrics()}.