我正在尝试使用swagger-confluence独立工具将我的Swagger JSON模式(myapi.json)上传到Atlassian Confluence。
独立的CLI .jar 应该(据我理解)像这样运行(在此页面上用于凭据Base64编码:this)。
输出(404未找到):
但是,使用REST Easy(Firefox插件)通过GET调用URL
独立的CLI .jar 应该(据我理解)像这样运行(在此页面上用于凭据Base64编码:this)。
java -jar <system path root>/swagger-confluence-cli-all-2.2-RELEASE.jar -u "http(s)://<server>:<port>/confluence/rest/api/" -b "<base64 encoded userid:password string" -a "<parent page id>" -k "<space key>" -g "true" -i "true" -s "<myschema.json>" -t "<Title for generated page>" -m "single"
输出(404未找到):
2016-08-23 15:08:12.177 INFO - [main] n.s.s.c.s.i.SwaggerToAsciiDocServiceImpl : AsciiDoc Conversion Complete!
2016-08-23 15:08:12.178 INFO - [main] n.s.s.c.s.i.AsciiDocToXHtmlServiceImpl : Converting AsciiDoc to XHTML5...
io/console not supported; tty will not be manipulated
2016-08-23 15:08:16.888 INFO - [main] n.s.s.c.s.i.AsciiDocToXHtmlServiceImpl : XHTML5 Conversion Complete!
2016-08-23 15:08:17.728 INFO - [main] n.s.s.c.s.i.XHtmlToConfluenceServiceImpl : Posting XHTML to Confluence...
Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 404 Not Found
在搜索Confluence REST API示例(例如在Stackoverflow中)时,可能会导致一些混淆,因为该API似乎发生了一些变化。然而,Confluence REST API page 表明当前的API应自Confluence Server 5.5以来保持不变。这也被描述为swagger-confluence概述page中的要求。
同样的要求提到“访问REST API的Confluence用户”。如何确定这一点?我正在使用管理员用户。我在常规配置- >进一步配置下找到了一般的“启用远程API”配置(似乎默认已启用),正如此article所述。同一文章说 Confluence 5.5+ 已经废弃了此设置启用的XML-RPC和SOAP API。REST API是否默认已启用,并且是否有一种控制其使用的方法?
在尝试调用REST API时,结果有些奇怪(尽管我确实收到了响应,这让我认为URL是正确的)。
curl -v -u userid:pass http://<server>:<port>/confluence/rest/api/
...
HTTP/1.1 302 Found
...
但是,使用REST Easy(Firefox插件)通过GET调用URL
http://<server>:<port>/confluence/rest/api/
并提供userid和pass作为基本身份验证返回200 OK HTTP状态,并似乎返回我的Confluence仪表板(空间的父级;顶级页面)。在浏览器中访问URL时也会发生同样的情况。此外,尝试通过文档化的方式调用Confluence REST API 的其他尝试都导致404错误。开始认为这是授权问题...我做错了什么?或者是否有另一种方法可以产生类似于Swagger Confluence demo 的结果?