已完成:apifox 公开站抓 5 个接口字段详情,结果固化在
design.md覆盖度矩阵 + 风险章节。 风险:apifox 文档可能与生产 API 漂移,实施冒烟时需联调验证。
mjava/src/main/java/com/malk/service/integration/IntpConf.java,@ConfigurationProperties("integration"),字段 baseUrl / clientId / clientSecretmjava/src/main/resources/application-prod.yml.example 加 integration: 段mjava-mcli / mjava-shunfeng / mjava-guangming 三个 application-prod.yml.example 加 integration: 段application-dev.yml(不是 .example)按需自行加段,本 change 不动真实 ymlservice/integration/IntpClient.java(接口),方法:
McR createUser(String accessToken, String username, String password, Map<String,Object> body_ext)McR updateUser(String accessToken, String username, Map<String,Object> body_ext)McR deleteUsers(String accessToken, List<String> usernames)McR queryUsers(String accessToken, Map<String,Object> query)body_ext 与 query 的可选字段(见 design.md / spec.md)service/integration/impl/IntpClientImpl.java,依赖 UtilHttp + UtilToken + IntpConfgetAccessToken():缓存命中直接返回;miss 调 POST {baseUrl}/iam/token 走 form body 拿 token,TTL=expires_in - 60Authorization: Bearer {accessToken} + 调 UtilHttp.doPost/doPatch/doGet + unwrap {result, error, error_description, data} → McRmvn -pl mjava -am clean compile 通过mvn -pl mjava-mcli -am clean package -Dmaven.test.skip=true 通过(确保配置类不会让客户子模块启动失败)createUser("test_user", "Pwd@123", null)/iam/token 请求)openspec validate add-integration-user-api --strict 通过/opsx:archive add-integration-user-api → 移到 openspec/changes/archive/2026-04-XX-add-integration-user-api/openspec/specs/integration-user-api//iam/api/orgs/*)/iam/api/tags/*)/iam/api/users/status / /iam/api/users/password)/iam/api/open/event/...)DynamicIntpService