如何通过Kentico 13 REST API获取页面永久链接?
解决Kentico 13 REST API获取页面永久链接的问题
问题描述
我正在为运行Kentico 13的客户开发导出工具,要将内容导入WordPress。通过以下curl命令获取所有对象的JSON数据:
curl -u USERNAME:PASSWORD -X GET https://mykentico.site/xp-admin/rest/content/currentsite/en-us/all?format=json
再通过单个AliasPath查询页面详情:
curl -u USERNAME:PASSWORD -X GET https://mykentico.site/xp-admin/rest/content/currentsite/en-us/document/News-Overview/June-2024/Hello-World?format=json
但返回的JSON中没有permalink或可推导前端永久链接的字段,实际前端URL(如https://mykentico.site/newsletter/june-2024/hello-foobar-world)和AliasPath路径、名称不一致,需要通过REST API获取准确的永久链接用于URL映射。
可行解决方案
1. 使用文档GUID调用URL生成端点
Kentico 13的REST API提供了专门生成页面URL的端点,你需要先通过文档详情获取DocumentGUID字段,然后调用:
curl -u USERNAME:PASSWORD -X GET https://mykentico.site/xp-admin/rest/content/currentsite/en-us/document/{DocumentGUID}/url?format=json
这个端点会直接返回该页面的前端完整永久链接,格式类似:
{ "Url": "https://mykentico.site/newsletter/june-2024/hello-foobar-world" }
2. 检查返回字段中的URL相关属性
部分情况下,文档详情的JSON可能包含以下字段,可用于推导或直接获取URL:
NodeAliasPath:基础路径,但可能和前端URL不同,需结合站点的URL重写规则调整DocumentName:页面名称,可能对应URL中的最后一段(如果URL规则是基于名称生成)DocumentURLPath:如果站点配置了友好URL,这个字段可能存储了生成后的URL路径(需验证)
3. 批量获取文档URL
如果需要批量处理,可循环遍历所有文档的GUID,逐个调用URL生成端点。部分Kentico 13版本支持通过/rest/content/currentsite/en-us/url端点传递多个文档GUID参数实现批量获取(需根据实际环境验证)。
4. 自定义REST字段(需后台配置)
如果允许修改Kentico后台配置,可以创建自定义字段返回永久链接:
- 进入Kentico后台的内容类型配置界面
- 给目标内容类型添加一个计算字段,宏表达式设为
{% DocumentURL %} - 重新调用文档详情的REST API,即可在返回结果中看到该字段对应的永久链接值
内容的提问来源于stack exchange,提问作者alfy
相关产品推荐
相关产品推荐

