This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev by this push:
new aa4191fdd [Improve] add interface description and format for
`AlertController` (#1711)
aa4191fdd is described below
commit aa4191fdde198bedb11a61b8dcae5c0a641c0174
Author: Shaokang Lv <[email protected]>
AuthorDate: Thu Sep 29 15:33:17 2022 +0800
[Improve] add interface description and format for `AlertController` (#1711)
* [Improve] add restApi description and format for `AlertController`
---
.../streampark-console-service/pom.xml | 10 ++--
.../console/core/bean/AlertConfigWithParams.java | 13 +++++
.../console/core/bean/AlertDingTalkParams.java | 27 ++++------
.../console/core/bean/AlertEmailParams.java | 6 ++-
.../console/core/bean/AlertHttpCallbackParams.java | 20 +++----
.../console/core/bean/AlertLarkParams.java | 19 ++++---
.../console/core/bean/AlertWeComParams.java | 8 ++-
.../console/core/controller/AlertController.java | 62 ++++++++++++++--------
8 files changed, 100 insertions(+), 65 deletions(-)
diff --git a/streampark-console/streampark-console-service/pom.xml
b/streampark-console/streampark-console-service/pom.xml
index 7d0393df0..748209f8d 100644
--- a/streampark-console/streampark-console-service/pom.xml
+++ b/streampark-console/streampark-console-service/pom.xml
@@ -32,7 +32,7 @@
<artifactId>streampark-console-service</artifactId>
<name>StreamPark : Console Service</name>
- <!-- 定义统一版本号-->
+ <!-- unified define console-service version -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -178,7 +178,7 @@
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
- <!-- aop依赖 -->
+ <!-- aop -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
@@ -203,7 +203,7 @@
<version>${mybatis-plus.version}</version>
</dependency>
- <!-- sql 打印 -->
+ <!-- sql print -->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
@@ -273,7 +273,7 @@
<version>${xml-apis.version}</version>
</dependency>
- <!--hadoop-->
+ <!-- hadoop -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-client</artifactId>
@@ -357,7 +357,7 @@
<artifactId>jackson-module-scala_${scala.binary.version}</artifactId>
</dependency>
-
+ <!-- swagger 2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertConfigWithParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertConfigWithParams.java
index f1f0786f9..965028e8f 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertConfigWithParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertConfigWithParams.java
@@ -21,6 +21,8 @@ import org.apache.streampark.console.base.util.JacksonUtils;
import org.apache.streampark.console.core.entity.AlertConfig;
import com.fasterxml.jackson.core.JsonProcessingException;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -28,25 +30,36 @@ import org.springframework.beans.BeanUtils;
import java.io.Serializable;
+@ApiModel(value = "AlertConfig")
@Data
@Slf4j
public class AlertConfigWithParams implements Serializable {
+
+ @ApiModelProperty(name = "id", value = "id")
private Long id;
+ @ApiModelProperty(name = "userId", value = "user id")
private Long userId;
+ @ApiModelProperty(name = "alertName", value = "alert name")
private String alertName;
+ @ApiModelProperty(name = "alertType", value = "alert type")
private Integer alertType;
+ @ApiModelProperty(name = "emailParams", value = "email alert params")
private AlertEmailParams emailParams;
+ @ApiModelProperty(name = "dingTalkParams", value = "ding-talk alert
params")
private AlertDingTalkParams dingTalkParams;
+ @ApiModelProperty(name = "weComParams", value = "we-com alert params")
private AlertWeComParams weComParams;
+ @ApiModelProperty(name = "httpCallbackParams", value = "http callback
alert params")
private AlertHttpCallbackParams httpCallbackParams;
+ @ApiModelProperty(name = "larkParams", value = "lark alert params")
private AlertLarkParams larkParams;
public static AlertConfigWithParams of(AlertConfig config) {
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertDingTalkParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertDingTalkParams.java
index 8f1035253..d20e79ea9 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertDingTalkParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertDingTalkParams.java
@@ -18,40 +18,35 @@
package org.apache.streampark.console.core.bean;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+@ApiModel(value = "AlertDingTalk")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AlertDingTalkParams implements Serializable {
- @NotBlank(message = "The access token of DingTalk must not be empty")
+
+ @ApiModelProperty(name = "token", value = "token")
+ @NotBlank(message = "The access token of DingTalk must be not empty")
private String token;
- /**
- * alert phone, separated by ','
- */
+ @ApiModelProperty(name = "contacts", value = "phone, multiple use ','
delimiter")
private String contacts;
- /**
- * ding alert url
- */
+ @ApiModelProperty(name = "alertDingUrl", value = "ding url")
private String alertDingURL;
- /**
- * at all
- */
+ @ApiModelProperty(name = "isAtAll", value = "is @all", example = "false")
private Boolean isAtAll = false;
- /**
- * ding robot secret enabled, default false, if enable, need set secret
token
- */
+ @ApiModelProperty(name = "secretEnable", value = "is ding robot secret
enabled", example = "false")
private Boolean secretEnable = false;
- /**
- * ding robot webhook secret_token
- */
+ @ApiModelProperty(name = "secretToken", value = "ding robot webhook secret
token")
private String secretToken;
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertEmailParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertEmailParams.java
index 3b75beeaa..4569bd9e0 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertEmailParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertEmailParams.java
@@ -18,16 +18,20 @@
package org.apache.streampark.console.core.bean;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+@ApiModel(value = "AlertEmail")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AlertEmailParams implements Serializable {
- @NotBlank(message = "The address of email must not be empty")
+ @ApiModelProperty(name = "contacts", value = "email address")
+ @NotBlank(message = "The address of email must be not empty")
private String contacts;
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertHttpCallbackParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertHttpCallbackParams.java
index c93aa28bc..9dd3ee53d 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertHttpCallbackParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertHttpCallbackParams.java
@@ -18,29 +18,29 @@
package org.apache.streampark.console.core.bean;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+@ApiModel(value = "AlertHttpCallback")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AlertHttpCallbackParams implements Serializable {
- @NotBlank(message = "The url of alert must not be empty")
+
+ @ApiModelProperty(name = "url", value = "callback url")
+ @NotBlank(message = "The url of callback must be not empty")
private String url;
- /**
- * http request method, default is POST
- */
+
+ @ApiModelProperty(name = "method", value = "http method")
private String method = "POST";
- /**
- * http request contentType, default is application/json
- */
+ @ApiModelProperty(name = "contentType", value = "content type", example =
"application/json")
private String contentType;
- /**
- * use freemarker replace the params
- */
+ @ApiModelProperty(name = "requestTemplate", value = "use freemarker
template replace the params")
private String requestTemplate;
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertLarkParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertLarkParams.java
index d9cbe1583..8d940c8d0 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertLarkParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertLarkParams.java
@@ -18,30 +18,29 @@
package org.apache.streampark.console.core.bean;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+@ApiModel(value = "AlertLark")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AlertLarkParams implements Serializable {
- @NotBlank(message = "The access token of Lark must not be empty")
+
+ @ApiModelProperty(name = "token", value = "lark token")
+ @NotBlank(message = "The access token of Lark must be not empty")
private String token;
- /**
- * at all
- */
+ @ApiModelProperty(name = "isAtAll", value = "is @all", example = "false")
private Boolean isAtAll = false;
- /**
- * lark robot secret enabled, default false, if enable, need set secret
token
- */
+ @ApiModelProperty(name = "secretEnable", value = "is lark robot secret
enabled", example = "false")
private Boolean secretEnable = false;
- /**
- * lark robot webhook secret_token
- */
+ @ApiModelProperty(name = "secretToken", value = "lark robot webhook secret
token")
private String secretToken;
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertWeComParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertWeComParams.java
index 8230c38de..6394a1a8b 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertWeComParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/AlertWeComParams.java
@@ -18,15 +18,21 @@
package org.apache.streampark.console.core.bean;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+@ApiModel(value = "AlertWeCom")
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AlertWeComParams implements Serializable {
- @NotBlank(message = "The access token of WeCom must not be empty")
+
+ @ApiModelProperty(name = "token", value = "we-com token")
+ @NotBlank(message = "The access token of WeCom must be not empty")
private String token;
+
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/AlertController.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/AlertController.java
index c8ea74933..55a478f39 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/AlertController.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/AlertController.java
@@ -28,6 +28,10 @@ import
org.apache.streampark.console.core.service.alert.AlertConfigService;
import org.apache.streampark.console.core.service.alert.AlertService;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -43,10 +47,11 @@ import java.util.Date;
import java.util.List;
import java.util.TimeZone;
+@Api(tags = {"ALERT_TAG"})
@Slf4j
@Validated
@RestController
-@RequestMapping("flink/alert")
+@RequestMapping("/flink/alert")
public class AlertController {
@Autowired
@@ -55,55 +60,68 @@ public class AlertController {
@Autowired
private AlertService alertService;
- @PostMapping(value = "add")
- public RestResponse addAlertConf(@RequestBody AlertConfigWithParams
params) {
- log.info("received alert config:{}", params);
- AlertConfig alertConfig = AlertConfig.of(params);
- boolean save = alertConfigService.save(alertConfig);
+ @ApiOperation(value = "createAlertConfig")
+ @PostMapping(value = "/add")
+ public RestResponse createAlertConfig(@RequestBody AlertConfigWithParams
params) {
+ boolean save = alertConfigService.save(AlertConfig.of(params));
return RestResponse.success(save);
}
- @PostMapping(value = "exists")
- public RestResponse exists(@RequestBody AlertConfigWithParams params)
throws Exception {
- AlertConfig alertConfig = AlertConfig.of(params);
- boolean exist = alertConfigService.exist(alertConfig);
+ @ApiOperation(value = "existsAlertConfig")
+ @PostMapping(value = "/exists")
+ public RestResponse existsAlertConfig(@RequestBody AlertConfigWithParams
params) {
+ boolean exist = alertConfigService.exist(AlertConfig.of(params));
return RestResponse.success(exist);
}
- @PostMapping(value = "update")
- public RestResponse update(@RequestBody AlertConfigWithParams params)
throws Exception {
+ @ApiOperation(value = "updateAlertConfig")
+ @PostMapping(value = "/update")
+ public RestResponse updateAlertConfig(@RequestBody AlertConfigWithParams
params) {
boolean update = alertConfigService.updateById(AlertConfig.of(params));
return RestResponse.success(update);
}
- @PostMapping("get")
- public RestResponse get(@RequestBody AlertConfigWithParams params) throws
Exception {
+ @ApiOperation(value = "getAlertConfig")
+ @PostMapping("/get")
+ public RestResponse getAlertConfig(@RequestBody AlertConfigWithParams
params) {
AlertConfig alertConfig = alertConfigService.getById(params.getId());
return RestResponse.success(AlertConfigWithParams.of(alertConfig));
}
- @PostMapping(value = "list")
- public RestResponse list(@RequestBody AlertConfigWithParams params,
RestRequest request) throws Exception {
+ @ApiOperation(value = "listPageAlertConfigs")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "pageSize", value = "page size", required =
true, example = "10"),
+ @ApiImplicitParam(name = "pageNum", value = "page num", required =
true, example = "1"),
+ @ApiImplicitParam(name = "sortField", value = "sort field"),
+ @ApiImplicitParam(name = "sortOrder", value = "sort order")
+ })
+ @PostMapping(value = "/list")
+ public RestResponse listPageAlertConfigs(@RequestBody
AlertConfigWithParams params, RestRequest request) {
IPage<AlertConfigWithParams> page = alertConfigService.page(params,
request);
return RestResponse.success(page);
}
- @PostMapping(value = "listWithOutPage")
- public RestResponse listWithOutPage() throws Exception {
+ @ApiOperation(value = "listAlertConfigs")
+ @PostMapping(value = "/listWithOutPage")
+ public RestResponse listAlertConfigs() {
List<AlertConfig> page = alertConfigService.list();
return RestResponse.success(page);
}
- @DeleteMapping("delete")
- public RestResponse deleteAlertConf(@NotNull(message = "id must not be
empty") Long id) {
+ @ApiOperation(value = "deleteAlertConfig")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "config id", required = true)
+ })
+ @DeleteMapping("/delete")
+ public RestResponse deleteAlertConfig(@NotNull(message = "config id must
be not null") Long id) {
boolean result = alertConfigService.deleteById(id);
return RestResponse.success(result);
}
/**
- * send alert message for test
+ * TODO after remove to unit test
*/
- @PostMapping("send")
+ @PostMapping("/send")
public RestResponse sendAlert(Long id) throws AlertException {
AlertTemplate alertTemplate = new AlertTemplate();
alertTemplate.setTitle("Notify: StreamPark alert job for test");