시작하기
openriro는 리로스쿨의 기능을 Kotlin에서 사용할 수 있도록 하는 스크래핑 wrapper 라이브러리입니다. openriro를 사용하면 리로스쿨에서 지원하지 않는 기능을 직접 구현해 사용하거나, 다음과 같은 작업을 할 수 있습니다.
특정한 유저의 게시글 목록을 가져오기
자신의 제출물과 첨부 파일을 다운로드하기
가정통신문을 자동으로 제출하기
이 외에도 대부분의 작업을 수행할 수 있습니다.
일러두기
설치하기
openriro는 Maven Central에 배포되어 있으므로, 다음과 같이 의존성을 추가하여 사용할 수 있습니다. 최신 버전은 GitHub 에서 확인하세요.
사용하기
클라이언트 만들기
openriro를 사용하려면 먼저 OpenRiroAPI 객체를 만들어야 합니다.
OpenRiroAPIendpoints를 호출하기 위해서 필요한 객체로, 설정과 인증 정보를 담고 있습니다.
id와 pw는 리로스쿨 계정의 아이디와 비밀번호를 그대로 사용하면 됩니다. baseUrl은 https://[school].riroschool.kr 형태로, 학교에 따라 다릅니다.
OpenRiroAPI 객체를 만들었다면, 이제 OpenRiroClient 객체를 만들어봅시다. OpenRiroClient는 OpenRiroAPI를 보다 사용하기 쉽도록 한 객체로, 직접 엔드포인트를 호출하지 않아도 원하는 메뉴에 접근할 수 있도록 도와줍니다. 또한 캐싱 등의 기능을 제공합니다.
공지사항 조회하기
먼저 간단하게 공지사항 메뉴에 접근해봅시다. 그 전에 리로스쿨의 메뉴가 어떻게 구성되어 있는지 살펴봅시다.
- /board.php (
Board.Normal) 공지사항 등이 있는 게시판 메뉴입니다.
대상이 없고, 설문조사 등이 없는 메뉴입니다.- /board_msg.php (
BoardMsg) 가정통신문 등이 있는 게시판 메뉴입니다.
대상이 있고, 설문조사가 가능한 메뉴입니다.- /portfolio.php (
Portfolio) 보고서 등이 있는 메뉴입니다. 하위로 여러 과제가 있고, 각 과제마다 여러 제출물이 있는 메뉴입니다.
공지사항은 Board.Normal 메뉴에 있습니다. 메뉴를 가져오려면 OpenRiroClient.labeled 함수를 사용하면 됩니다.
이제 list 함수를 사용해 게시글 목록을 가져올 수 있습니다.
먼저 첫 게시글을 가져와봅시다.
기본적으로 캐싱이 적용되어 있기 때문에, 같은 게시글을 다시 가져오면 캐시에서 불러옵니다.