# fasc-op-java-sdk
**Repository Path**: fadada-cloud/fasc-op-java-sdk
## Basic Information
- **Project Name**: fasc-op-java-sdk
- **Description**: 法大大混合云OP2.0 JAVA语言版SDK
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-08-22
- **Last Updated**: 2024-02-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# FASC OP Java SDK v2.0 说明
# 简介
欢迎使用法大大开发者工具套件(SDK),OP Java SDK 是法大大 OP2.0 API在线文档的配套工具。
SDK已上传至中央仓库,直接通过Maven安装FASC OP Java SDK:
```xml
io.gitee.fadada-cloud
op-java-sdk-spring-boot-starter
2.0.6.1
```
# 依赖环境
JAVA JDK 版本: JDK 1.8
注意:法大大OP系统需要已安装并激活启动。(有疑问可联系法大大项目对接人)
# 安装说明
## 引用jar包
引入sdk 所依赖的jar包,提供的方法调用OP API服务。
```xml
commons-logging
commons-logging
1.2
compile
commons-codec
commons-codec
1.15
```
## 始化客户端
系统参数配置说明
```properties
# 法大大部署在本地服务器地址
fdd.sdk.server-url=https://xxx.fadada.com/
# 法大大本地服务应用ID(法大大系统管理后台 > 集成中心 > 系统集成 > 自建应用)
fdd.sdk.appid=587623
# 法大大本地服务应用密钥
fdd.sdk.appkey=D0qrIe6Gdl9dTilMmnoIyFka6egTAIAp
# 网络请求超时时间
fdd.sdk.connect-timeout=10000
# 网络请求读取超时时间
fdd.sdk.read-timeout=120000
# 授权类型:sign、oauth。默认为sign(详细解读参考API在线文档,本地文档地址:https://xxx.fadada.com/doc)
fdd.sdk.auth-type=oauth
```
## 业务方法调用
Springboot自动注入FddApiClient
```java
@Autowired
FddClientService fddClient; //系统参数配置后自动注入
@Test
void createAccount() throws ApiException {
// 创建用户为例
CreateAccountRequest request = new CreateAccountRequest();
request.setUserName("张三");
request.setMobile("17788722127");
CreateAccountResponse response = fddClient.execute(request);
System.out.println(MessageFormat.format("code:{0}, message:{1}", response.getCode(), response.getMessage()));
if("0".equals(response.getCode())){
CreateAccountResult createAccountResult = response.getData();
System.out.println("fddClient success! accountId:" + createAccountResult.getAccountId());
}
}
```
手动初始化客户端
```java
//初始化本地缓存保存token信息, 可自定义实现FddTokenStore的类自行使用redis等中间件保存token信息
FddTokenStore tokenStore = new CacheTokenStoreImpl();
//初始化客户端
DefaultFddClient fddClient = new DefaultFddClient(serverUrl, appId, appKey, Constants.AUTH_OAUTH, 1000, 30000);
fddClient.tokenStore(tokenStore);
// 创建用户为例
CreateAccountRequest request = new CreateAccountRequest();
request.setUserName("张三");
request.setMobile("17788722127");
CreateAccountResponse response = fddClient.execute(request);
System.out.println(MessageFormat.format("code:{0}, message:{1}", response.getCode(), response.getMessage()));
if("0".equals(response.getCode())){
CreateAccountResult createAccountResult = response.getData();
System.out.println("fddClient success! accountId:" + createAccountResult.getAccountId());
}
```
更多示例详见demo代码(https://gitee.com/fadada-cloud/fasc-op-java-sdk/blob/2.0.6/src/main/java/com/fdd/op/demo/Demo.java)
## 扩展说明
当SDK版本不匹配OP系统版本时(API接口SDK不满足),可通过扩展实现自定义的请求接口、请求参数、响应结果解析等。
1、自定义接口请求Request,继承BaseFddRequest。
```java
public class GetAccountRequest extends BaseFddRequest {
@Override
public String getApiMethodName() {
// 请求接口地址,详见API在线文档,本地文档地址:https://xxx.fadada.com/doc
return "/user/api/account/getAccount";
}
@Override
public String getHttpMethod() {
return Constants.METHOD_GET;
}
@Override
public Map getTextParams() {
FddHashMap txtParams = new FddHashMap();
if (this.udfParams != null) {
txtParams.putAll(this.udfParams);
}
return txtParams;
}
@Override
public Class getResponseClass() {
// 自定义接口响应Response
return GetAccountResponse.class;
}
@Override
public void check() throws ApiRuleException {
// 自定义入参校验
if (StringUtils.isBlank(getAccountId())) {
throw new ApiRuleException("90000", "参数不能为空");
}
}
/** 用户在当前系统的唯一标识 */
@RequestField("用户在当前系统的唯一标识")
private String accountId;
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
}
```
2、自定义接口响应Response,继承FddResponse。
```java
public class GetAccountResponse extends FddResponse {
@ApiListField("data")
@ApiField("data") // 自定义接口响应Data
private List data;
public List getData() {
return data;
}
public void setData(List data) {
this.data = data;
}
}
```
3、自定义接口响应Data
```java
public class AccountInfo extends BaseObject {
/**
* 用户在当前系统的唯一标识
*/
@ApiField("accountId")
private String accountId;
/**
* 用户在第三方业务系统的唯一标识
*/
@ApiField("tpAccountId")
private String tpAccountId;
}
```
4、自定义接口请求
```java
// 接口请求
GetAccountRequest request = new GetAccountRequest();
request.setAccountId("418018522430435328");
// 接口响应
GetAccountResponse response = fddClient.execute(request);
if ("0".equals(response.getCode())) {
// 响应Data
List data = response.getData();
}
```
# 参考
FASC OP本地文档地址:https://xxx.fadada.com/doc
注意:文档地址参考实际项目地址,只能开放UAT环境查看。