gpt4 book ai didi

swagger - 如何以编程方式将 Swagger API 文档发布到 Atlassian Confluence? (Swagger Confluence 工具和 Confluence REST API 的使用)

转载 作者:行者123 更新时间:2023-12-04 11:49:04 29 4
gpt4 key购买 nike

我正在尝试使用 swagger 将我的 Swagger JSON 模式 (myapi.json) 上传到 Atlassian Confluence - confluence独立 tool .

独立的 CLI .jar should (根据我的理解)像这样操作(使用 this 页面用于凭据 Base64 编码):

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 中所述。 .同一篇文章说,此设置启用的 XML-RPC 和 SOAP API 在 Confluence 5.5+ 上已弃用。是否默认启用 REST API,是否有控制使用的方法?

尝试调用 REST API 时也会得到一些奇怪的结果(尽管我 得到响应,所以我认为 URL 是正确的)。
curl -v -u userid:pass http://<server>:<port>/confluence/rest/api/  
...
HTTP/1.1 302 Found
...

但是调用 URL http://<server>:<port>/confluence/rest/api/使用带有 GET 的 REST Easy(Firefox 插件)并提供用户 ID 和传递作为基本身份验证返回 200 OK HTTP 状态,并且似乎返回了我的 Confluence 仪表板(空间的父级;顶级页面)。仅使用浏览器访问 URL 时也会发生同样的情况。

还有许多其他尝试调用 Confluence REST API记录方式导致 404。开始认为这是一个授权问题..我做错了什么?或者是否有另一种方法可以产生类似于 Swagger Confluence demo 的结果?

最佳答案

好吧,事实证明即使 http://<server>:<port>/confluence/rest/api/返回 HTTP 200 OK,网址错误。
上面是所谓的“带上下文的 URL”(/confluence/部分),我需要的是没有上下文的 URL(URL 中没有/confluence/)。

以下是我通过接收 200、标题 (-v) 和页面内容作为 JSON 响应来测试 URL 工作的方法:curl -v -u user:pass http://<server>:<port>/rest/api/content/{id}可以通过在 Confluence 页面上按下(或鼠标悬停)“编辑”按钮来检查页面 ID。

这是我最终让自动 Confluence 上传工作的方式:java -jar <system path root>/swagger-confluence-cli-all-2.2-RELEASE.jar -u "http(s)://<server>:<port>/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"
Swagger Confluence tool顺便说一句,很棒,结果和 demo 一样好!

[编辑添加]:
确认 Swagger Confluence 库/工具 (v2.2) 可以在我的 objective-c onfluence 服务器上运行,版本 5.8.14 和 5.9.2

关于swagger - 如何以编程方式将 Swagger API 文档发布到 Atlassian Confluence? (Swagger Confluence 工具和 Confluence REST API 的使用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104454/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com