글 작성자: 모두의 근삼이

개발 1일차

단위목표

  • confluence api 조사
  • 페이지, 스페이스 목록 정보 조회 api 확인
  • 특정 페이지 html or markdown export api 확인

REST API 활용

  • 인증 구현
  1. personal token 생성
  2. <로그인 이메일>:<토큰> 을 base64로 인코딩
  3. Authorization 헤더에 Basic <base64 인코딩 된 값>을 추가하여 사용
curl -H "Authorization: Basic <yourToken>" https://{confluenceBaseUrl}/rest/api/content
  • space 목록 확인
구분 정보 비고
API 경로 https://<baseurl>/wiki/rest/api/space
매서드 GET
호출 목적 space의 name, key 쌍 확인
  • 페이지 목록 조회
구분 정보 비고
API 경로 https://<baseurl>/wiki/rest/api/content
매서드 GET
Query 파라미터1 spaceKey 값: 조회할 space의 key
호출 목적 contents 들의 title 및 id 값 확인

 

xmlRPC

페이지를 html로 랜더링해주는 REST API를 도저히 찾을수가 없어서, 관련 자료를 검색하던 중, xmlRPC API에는 관련 메서드가 있는듯 하여 찾아보았다. 이미 confluence Cloud에서는 5.5 버전에서 이미 지원이 종료된 API 기능 이었지만, API는 아직 동작 하지 않을까 싶어 시도해 보았으나, 한참 삽질 끝에 더 이상 동작하지 않는 API라는 것을 알게 되었다.

 


개발 2일차

신규 단위목표

  • 이미지 추출 및 공개서버에 업로드 → html내 링크 정보 치환
  • 테이블 테그 tistory 형식에 맞게 변경
  • codeBox tistory 형식에 맞게 변경 필요

드디어 페이지 html 추출 성공

  • 페이지 html export
구분 정보 비고
API 경로 https://<baseurl>/wiki/rest/api/content/<pageId>
매서드 GET
Query 파라미터1 expand 값: body.styled_view
호출 목적 페이지 html로 export

추출된 페이지 테스트 등록

추출된 html이 tistory 게시물로 등록되었을 때 바람직한 모양으로 출력되는지 테스트하기 위해서 테스트 게시물을 게시해 보았다. 눈에 띄는 문제점 두가지가 보였다.

  • 표 디자인이 구림
  • 코드박스 syntax highlight가 동작하지 않음

보이는 문제점 말고도 가장 치명적인 문제점이 하나 있는데, html내부에 삽입된 이미지가 confluence Cloud 서버내에 저장되어 링크가 걸려있었다. 당연히 로그인 통해 인가된 사용자만 접근하여 이미지를 로딩해 올 수 있었기 때문에, 블로그에 정상적으로 게시하기 위해서는 이미지를 별도 퍼블릭 서버에 업로드 한 뒤, 이미지 url 변경 사항을 반영하여 html을 다시 작성해 줘야 했다.

코드블럭 하이라이팅 활성화

<code> 블럭 추가로 해결

표 예쁘게

th 테그 모두 td 로 변경으로 해결

이미지 호스팅 서버

무료이면서 가장 api 활용이 편리한 사이트를 찾다보니 imgbb 라는 사이트를 찾게 되었다. API가 매우 간결하고 필요한 정보만 있어서 선택하였다.

  • 이미지 업로드 API
구분 정보 비고
API 경로 https://api.imgbb.com/1/upload
매서드 POST
Query 파라미터1 key 값: api token
Form 데이터 image 값: 이미지 바이너리
호출 목적 페이지 html로 export

 

참고자료

반응형