개인 위키이자, 온라인 메모장으로 최근 선풍적(?)인 인기를 끌고 있는 스프링노트를 이용한 응용 어플리케이션을 만들기 위한 스프링노트 Java API 를 완성했습니다.
2주전 정도에 스프링노트 Java API를 만들어 스프링노트 커뮤니티 게시판에 포스트 했었습니다. 하지만 그때는 첨부파일 업/다운로드 및 삭제 기능이 없었고, 이번에는 첨부파일을 핸들링하는 부분까지 넣었습니다.
View SpringNote API Documents Download SpringNote API Jar (18.7KB)
스프링노트 Java API를 가지고 스프링노트 관련 매쉬업을 개발하려면 Application-Key/Id를 받아야 하는데 어려운 절차가 없이 개발자 커뮤니티에 등록만 하면 됩니다.
자세한 사용법이나 예제코드는 여기를 참조하시고, 궁금한 점이나 Test.java 같은 코드가 필요하면 이 글에 댓글로 담아주시기 바랍니다.
페이지 만들기 (CREATE)페이지 읽기 (RETRIVE)페이지 변경 (UPDATE)페이지 삭제 (DELETE)첨부파일 추가첨부파일 삭제첨부파일 읽기
첨부파일 관련 메서드 목록SpringNote.addAttachment( Attachment at, File file )SpringNote.addAttachment( Attachment at, InputStream in )SpringNote.removeAttachment( Attachment at )SpringNote.getAttachments( PageMeta pm )SpringNote.getAttachments( int pageId )SpringNote.downloadAttachment( Attachment at, File file )SpringNote.downloadAttachment( Attachment at, OutputStream out )
첨부파일 관련 클래스 목록rath.toys.springnote.Attachment rath.toys.springnote.event.ProgressEventrath.toys.springnote.event.ProgressListener
자세한 설명은 API Documents 에 포함되어 있으며, ProgressEvent 는 용량이 큰 파일을 업로드/다운로드 하는 과정을 표시하는 프로그램을 만들 때 유용하게 사용하실 수 있습니다.
import rath.toys.springnote.*;
import rath.toys.springnote.event.*;
SpringNote sn = new SpringNote();
sn.setOpenID( new URL("[http://rath.myid.net")](http://rath.myid.net) );
sn.setUsername( "rath" ); // 노트이름
sn.setUserKey("a8........................f808");
sn.setApplicationId("xx");
sn.setApplicationKey("34d6............e234");
Page createdPage = sn.**addPage**("스프링노트 자료실", "<p>여기는 자료실 입니다</p>");
sn.**updatePage**(createdPage.getId(), "<p>자료실 입니다</p>"); // 페이지 내용 변경
File f = new File("baseball.avi");
Attachment at = new **Attachment**();
at.**setPageId**( createdPage.getId() ); // 어느 페이지에 첨부할 것인지 꼭 알려주어야 함.
at.setTitle( f.getName() );
at.setFileSize( f.length() );
at.**addProgressListener**( new ProgressListener() { // 16KB 전송될때마다 이벤트 수신. 관심없을 경우 Listener를 부착할 필요 없음.
public void transferProgress( ProgressEvent e ) {
System.out.println( String.format("* Progress: %9d/%9d",
e.getTransferredBytes(), e.getTotalBytes()) ); // 16KB 마다 얼만큼 받았는지 STDOUT에 출력
}
});
sn.**addAttachment**( at, f ); // 파일 업로드
sn.**downloadAttachment**( at, new File("baseball-test.avi") ); // 파일 다운로드
sn.**removeAttachment**( at ); // 파일 삭제
sn.**removePage**(createdPage.getId()); // 페이지 삭제
Continue Reading
Discover more thoughts and insights
쉽게 몰입할 수 없는 이유
한창 무언가에 몰두해있을 때는 그것 말고는 아무것도 보이지 않는다. 그것에 대한 열정이 과거에 속한 기억들을 모두 일시적으로 제거했고 미래에 대한 걱정조차 둔감하게 만들었기 때문이다. 500개의 버그 중에 고작
최고령자 민재와 11살된 나
어제 은해와 함께 11살 진입 후 민재와의 대화 민재의 나이는 이힉힉힉
근황
10월초부터 거의.. 오늘-\_-까지 여유없는 삶이 계속되다가 대략 오후 3시 20분경부터 좀처럼 내게 찾아오지 않던 여유가 찾아왔다. 쌓인 일들을 생각해보면 결코 여유로울 수 없는 상태이지만, 일이 있냐 없냐를