2016-08-23 5 views
2

swagger - confluence 독립 실행 형 tool을 사용하여 Swagger JSON 스키마 (myapi.json)를 Atlassian Confluence에 업로드하려고합니다. 독립 CLI should .JAR (나의 이해에 따라) Swagger API 문서를 Atlassian Confluence에 프로그래밍 방식으로 게시하는 방법?

이 (자격 증명 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 사용자"가 나와 있습니다. 어떻게 결정 되는가? 관리자를 사용하고 있습니다. 이 article에 설명 된대로 일반 구성 -> 추가 구성 아래에서 일반 "원격 API 사용"구성 (기본적으로 활성화 된 것으로 보임)을 발견했습니다. 같은 기사에서이 설정이 가능하게하는 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 
... 

그러나 기본 인증은 200 개 OK HTTP 상태를 반환하고 공간의 내 합류 대시 보드 (부모를 반환 보인다 GET과 REST 쉬운 (파이어 폭스 플러그인)와 함께 URL http://<server>:<port>/confluence/rest/api/를 호출하고 사용자 ID를 & 패스를 제공하는 단계; 최상위 페이지). 브라우저로 URL에 액세스 할 때도 마찬가지입니다.

문서화 된 방법으로 Confluence REST API을 호출하는 수많은 시도에서 404가 발생했습니다. 이것이 인증 문제라고 생각하기 시작했습니다. 내가 뭘 잘못하고 있습니까? 또는 Swagger Confluence demo과 비슷한 결과를내는 또 다른 방법이 있습니까?

답변

5

http://<server>:<port>/confluence/rest/api/이 HTTP 200 OK, 을 반환 했음에도 불구하고 URL이 잘못되었습니다. 위의 내용은 "컨텍스트가있는 URL"(/ confluence/part)이며 필요한 것은 컨텍스트가없는 URL (URL에/confluence /가 없음)입니다. 페이지 ID를 눌러 확인할 수 있습니다 curl -v -u user:pass http://<server>:<port>/rest/api/content/{id}
(또는 마우스 overing) "편집"여기

는, 헤더 (-v) 및 JSON 응답으로 페이지 내용 나는 (200)를 수신하여 작업 URL을 테스트 방법 버튼을 클릭하십시오. 여기

그리고 내가 마지막으로 자동 합류 업로드 작업 있어요 방법은 다음과 같습니다
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"

자신감 합류 tool이 방법에 의해, 굉장를하고, 결과는 demo에서만큼 좋다!

는 [추가 편집] :
은 모두 내 목표 합류 서버, 버전에서 작동 할 수있는 자신감 합류 라이브러리/도구 (버전 2.2)을 확정 5.8.14과 5.9.2