Forge调用Confluence API v2返回404:contentId是否需转换?
Confluence Forge应用调用API v2时context.contentId导致404的解决方案
问题核心
你遇到的404错误本质是ID格式不匹配:Forge上下文提供的context.contentId是Confluence的数值型内容ID(即v1 API使用的ID),而Confluence REST API v2的/wiki/api/v2/pages/{pageId}端点要求的是UUID格式的页面ID,两者不能直接通用。
验证依据
- v1 API
/wiki/rest/api/content/{id}同时支持数值ID和UUID,所以你用context.contentId调用v1能正常返回结果; - v2 API的页面端点仅接受UUID,直接传入数值ID必然返回404。
解决步骤
先通过v1 API将数值ID转换为UUID,再用UUID调用v2 API:
- 调用v1 API获取页面的UUID:
// 获取v1格式的页面详情,提取UUID const v1Response = await api .asApp() .requestConfluence(`/wiki/rest/api/content/${context.contentId}`); const v1PageData = await v1Response.json(); const pageUuid = v1PageData.uuid;
- 使用UUID调用v2 API:
// 用UUID请求v2页面端点 const v2Response = await api .asApp() .requestConfluence(`/wiki/api/v2/pages/${pageUuid}`); const v2PageData = await v2Response.json();
补充说明
- 你可以在Confluence页面的「页面信息」中直接查看UUID,用来验证转换后的ID是否正确;
- 所有v2 API的页面相关端点(如创建、更新、删除)均要求使用UUID格式的ID,这是v2 API的标准化设计要求。
内容的提问来源于stack exchange,提问作者Jahanzaib Imran
相关产品推荐
相关产品推荐

