feat(nifi): 添加参数上下文功能并优化错误处理

- 新增参数上下文相关模型类- 实现参数上下文创建、更新、删除和查询的API接口
- 优化错误处理,提高异常信息的可读性
- 移除未使用的ProcessorConfig类
This commit is contained in:
liuy 2025-05-14 19:09:55 +08:00
parent 5d9fb90fb1
commit e535d45df3
15 changed files with 175 additions and 35 deletions

View File

@ -54,11 +54,7 @@ public class NifiClient {
public <T> T get(String path, Class<T> responseType) throws IOException {
return executeRequestWithRetry(() -> {
Request request = new Request.Builder()
.url(config.getApiUrl() + path)
.get()
.header("Authorization", "Bearer " + accessToken.get()).
build();
Request request = new Request.Builder().url(config.getApiUrl() + path).get().header("Authorization", "Bearer " + accessToken.get()).build();
return executeRequest(request, responseType);
});
}
@ -116,10 +112,10 @@ public class NifiClient {
private <T> T executeRequest(Request request, Class<T> responseType) throws IOException {
try (Response response = httpClient.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("意外的响应码: " + response);
}
String responseBody = response.body().string();
if (!response.isSuccessful()) {
throw new IOException("意外的响应码: " + responseBody);
}
return objectMapper.readValue(responseBody, responseType);
}
}

View File

@ -1,27 +0,0 @@
package com.hzya.frame.nifi.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.model
* @Projectfw-nifi
* @nameProcessorConfig
* @Date2025/5/14 10:01
* @FilenameProcessorConfig
*/
@Data
public class ProcessorConfig {
@JsonProperty("name")
private String name;
@JsonProperty("type")
private String type;
@JsonProperty("id")
private String id;
@JsonProperty("state")
private String state;
}

View File

@ -0,0 +1,17 @@
package com.hzya.frame.nifi.model.joinparametercontexts;
import lombok.Data;
import java.util.List;
/**
* Auto-generated: 2025-05-14 18:33:21
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
@Data
public class Component {
private String name;
private List<Parameters> parameters;
}

View File

@ -0,0 +1,11 @@
package com.hzya.frame.nifi.model.joinparametercontexts;
import lombok.Data;
@Data
public class Parameter {
private String name;
private String value;
private boolean sensitive;
private String description;
}

View File

@ -0,0 +1,9 @@
package com.hzya.frame.nifi.model.joinparametercontexts;
import lombok.Data;
@Data
public class ParameterContextsJoin {
private Revision revision;
private Component component;
}

View File

@ -0,0 +1,11 @@
/**
* Copyright 2025 bejson.com
*/
package com.hzya.frame.nifi.model.joinparametercontexts;
import lombok.Data;
@Data
public class Parameters {
private Parameter parameter;
}

View File

@ -0,0 +1,8 @@
package com.hzya.frame.nifi.model.joinparametercontexts;
import lombok.Data;
@Data
public class Revision {
private int version;
}

View File

@ -0,0 +1,14 @@
package com.hzya.frame.nifi.model.resultparametercontexts;
import lombok.Data;
import java.util.List;
@Data
public class Component {
private String name;
private List<Parameters> parameters;
private List<String> boundProcessGroups;
private List<String> inheritedParameterContexts;
private String id;
}

View File

@ -0,0 +1,22 @@
package com.hzya.frame.nifi.model.resultparametercontexts;
import lombok.Data;
import java.util.List;
/**
* Auto-generated: 2025-05-14 18:44:23
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
@Data
public class Parameter {
private String name;
private String description;
private String sensitive;
private String value;
private String provided;
private List<String> referencingComponents;
private ParameterContext parameterContext;
}

View File

@ -0,0 +1,10 @@
package com.hzya.frame.nifi.model.resultparametercontexts;
import lombok.Data;
@Data
public class ParameterContext {
private String id;
private Permissions permissions;
private Component component;
}

View File

@ -0,0 +1,12 @@
package com.hzya.frame.nifi.model.resultparametercontexts;
import lombok.Data;
@Data
public class ParameterContextsResult {
private Revision revision;
private String id;
private String uri;
private Permissions permissions;
private Component component;
}

View File

@ -0,0 +1,9 @@
package com.hzya.frame.nifi.model.resultparametercontexts;
import lombok.Data;
@Data
public class Parameters {
private boolean canWrite;
private Parameter parameter;
}

View File

@ -0,0 +1,9 @@
package com.hzya.frame.nifi.model.resultparametercontexts;
import lombok.Data;
@Data
public class Permissions {
private boolean canRead;
private boolean canWrite;
}

View File

@ -0,0 +1,9 @@
package com.hzya.frame.nifi.model.resultparametercontexts;
import lombok.Data;
@Data
public class Revision {
private int version;
private String lastModifier;
}

View File

@ -2,12 +2,16 @@ package com.hzya.frame.nifi.service;
import cn.hutool.core.util.StrUtil;
import com.hzya.frame.nifi.client.NifiClient;
import com.hzya.frame.nifi.model.joinparametercontexts.ParameterContextsJoin;
import com.hzya.frame.nifi.model.processgroupid.ProcessGroupsId;
import com.hzya.frame.nifi.model.processgrouproot.ProcessGroupsRoot;
import com.hzya.frame.nifi.model.resultparametercontexts.ParameterContextsResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* nifi api 服务类
*
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.service
* @Projectfw-nifi
@ -42,4 +46,30 @@ public class NifiApiService {
return client.get("/flow/process-groups/root", ProcessGroupsRoot.class);
}
}
/**
* 创建参数上下文
*/
public ParameterContextsResult createParameterContexts(ParameterContextsJoin parameterContextsJoin) throws Exception {
return client.post("/parameter-contexts", parameterContextsJoin, ParameterContextsResult.class);
}
/**
* 更新参数上下文
*/
public ParameterContextsResult updateParameterContexts(ParameterContextsResult parameterContextsJoin) throws Exception {
return client.post(StrUtil.format("/parameter-contexts/{contextId}/update-requests", parameterContextsJoin.getId()), parameterContextsJoin, ParameterContextsResult.class);
}
/**
* 删除参数上下文
*/
/**
* 查询参数上下文
*/
public ParameterContextsResult getParameterContexts(String paramContextsId) throws Exception {
return client.get(StrUtil.format("/parameter-contexts/{}", paramContextsId), ParameterContextsResult.class);
}
}