tasks.md 3.2 KB

0. 文档抓取(前置)

已完成:apifox 公开站抓 5 个接口字段详情,结果固化在 design.md 覆盖度矩阵 + 风险章节。 风险:apifox 文档可能与生产 API 漂移,实施冒烟时需联调验证。

1. 配置类 + 响应包装 + yml 段

  • 1.1 新建 mjava/src/main/java/com/malk/server/integration/INTPConf.java@ConfigurationProperties("integration"),字段 baseUrl / clientId / clientSecret + 4 个 path 常量 + 缓存 key — 2026-04-26
  • 1.2 新建 mjava/src/main/java/com/malk/server/integration/INTPR.java,extends VenR,字段 result / error / error_description / data + access_token/expires_in(兼容 token endpoint)+ assertSuccessMcException + 静态 doPost/doGet — 2026-04-26
  • 1.3 VenRRC_INTP = "com.malk.server.integration.INTPR" 常量 — 2026-04-26
  • 1.4 mjava/src/main/resources/application-prod.yml.exampleintegration: 段 — 2026-04-26
  • 1.5 mjava-mcli / mjava-shunfeng / mjava-guangming 三个 application-prod.yml.exampleintegration: 段 — 2026-04-26
  • 1.6 真实 dev/prod yml 不动(敏感凭据由用户自填)

2. Client 接口与实现

  • 2.1 新建 service/integration/INTPClient_User.java(接口),5 方法(含 getAccessToken()) — 2026-04-26
  • 2.2 javadoc 完整枚举 body_extquery 的可选字段(含子对象字段如 tag/group_positions) — 2026-04-26
  • 2.3 新建 service/integration/impl/INTPImplClient_User.java,依赖 INTPConf — 2026-04-26
  • 2.4 getAccessToken() 公开方法:缓存命中返回;miss 调 POST {baseUrl}/iam/token 走 form body 拿 token,TTL=(expires_in - 60) * 1000 毫秒入 UtilToken.put — 2026-04-26
  • 2.5 4 个 CRUD 方法实现:拼 URL + Header Authorization: Bearer + INTPR.doPost/doGetUtilHttp.doPatch(... INTPR.class) + INTPR.assertSuccess 自动抛业务异常 — 2026-04-26

3. 验证

  • 3.1 mvn -pl mjava -am clean compile 通过(2.5s,仅历史 warning) — 2026-04-26
  • 3.2 mvn clean package -DskipTests 全 reactor 7 模块 BUILD SUCCESS(5.5s) — 2026-04-26
  • 3.3 联调冒烟(任选一个客户环境,待真实凭据):
    • 拿 clientId/clientSecret 配进 dev yml
    • 写一个临时 Controller 调 getAccessToken() + createUser(token, "test_user", "Pwd@123", null)
    • 验证服务端真实创建一条记录 + 返回数据正确
    • 重复调用验证 token 缓存命中(不再发 /iam/token 请求)
  • 3.4 openspec validate add-integration-user-api --strict 通过(待 openspec CLI 可用时跑)

4. 归档

  • 4.1 /opsx:archive add-integration-user-api → 移到 openspec/changes/archive/2026-04-XX-add-integration-user-api/
  • 4.2 spec 合并到 openspec/specs/integration-user-api/
  • 4.3 BACKLOG.md 标 ✅;mjava-baseline.md vendor 表加一行 integration

5. 后续 change(不在本期范围)

  • 集成平台 org / 部门管理(/iam/api/orgs/*
  • 集成平台 角色管理(/iam/api/tags/*
  • 集成平台 启用/禁用用户 + 改密码(/iam/api/users/status / /iam/api/users/password
  • Webhook 接收(/iam/api/open/event/...
  • mjava-pro 多租户 DynamicIntpService