해피캠퍼스 자료 검색 서비스 Open API
자료검색 Open API 신청하기

API 개발가이드

API 설명

해피캠퍼스 자료검색 OpenAPI 는 외부 개발자가 손쉽게 이용할 수 있게 웹 또는 SDK 형태로 공개하는 기술입니다.

API 개발가이드

해피캠퍼스 회원 가입 후 신청이 가능합니다.

API 호출 정보

요청 URL 매서드 응답형식 설명
http://www.happycampus.com/api/search GET JSON 해피캠퍼스 검색결과를 JSON 로 반환한다.

API 요청 변수

요청변수 타입 필수여부 기본값 설명
query string Y - 검색을 원하는 문자열 UTF-8로 인코딩
start integer N 1~1000
- 기본값: 1
검색 시작 위치. 최대 1000까지 가능
display Integer N 10~100
- 기본값: 20
검색 결과 출력건수 지정. 최대 100까지 가능
sort string N accuracy 검색 결과 정렬 기준.
- accuracy : 정확도순
- date : 날짜순
target string N - 검색 카테고리. 지정하지 않을 시 전체 카테고리 검색
- report : 리포트
- ppt : ppt
- knou : 방송통신대
- form : 서식
- exam : 시험자료
- resume : 이력서
- intro : 자기소개서

API 출력 결과(성공)

필드 타입 설명
totalCount integer 검색 결과 자료 총 개수
start integer 검색 결과 시작점
display integer 검색 결과 출력 건수
query string 검색어
list -  
category string 자료 카테고리
categoryKo string 자료 카테고리(한국어)
price integer 자료 금액
regDate datetime 자료 등록일
tag string 태그. 쉼표(,)로 구분
title string 제목
intro string 소개글
body string 본문내용 일부
link string 자료 url

API 출력 결과(에러)

필드 타입 설명
errorCode string 에러코드
errorMessage string 에러메시지

API 에러 코드

HTTP 코드 에러코드 에러 메세지 조치 방안
400 E01 Invalid request. 잘못된 API 요청입니다. 요청 url, 요청 변수가 정확한지 확인해주세요.
400 E01-1 Invalid request parameter. 요청 변수가 잘못되었습니다. 요청 변수 값이 정확한지 확인해주세요.
400 E01-2 Invalid target value. target 요청 변수의 값이 올바른지 확인해주세요.
400 E01-3 Invalid query value. query 요청 변수에 값이 있는지 확인해주세요.
400 E01-4 Query value is short. Must be at least 2 characters long. query 요청 변수의 값이 2자 이상인지 확인해주세요.
400 E01-5 Invalid start value. Use a value 1~1000. start 요청 변수의 값이 1~1000 사이인지 확인해주세요.
400 E01-6 Invalid display value. Use a value 10~100. display 요청 변수의 값이 10~100 사이인지 확인해주세요.
400 E01-7 Invalid sort value. sort 요쳥 변수의 값을 확인해주세요.
401 E02 Authentication failed. 인증에 실패했습니다. api 요청 헤더에 client id와 api키가 포함되어 있는지 확인해주세요.
401 E02-1 Authentication failed.(Invalid key) api키가 정확한지 확인해주세요.
401 E02-3 Authentication failed.(This key was not allowed) api키가 사용제한이 된 키인지 확인해주세요.
401 E02-4 Your request has been blocked. Please try again in 24 hours. 짧은시간에 너무 많은 요청을 하여 api 사용이 차단되었습니다. 24시간 뒤 다시 사용가능합니다.
400 E03 Exceeded the number of requests per day. 일일 요청 가능한 횟수를 초과했습니다.
500 E99 System error. 서버 내부 에러가 발생했습니다.

API 호출 예제

PHP
<?php
$clientId = 'YOUR_CLIENT_ID';
$apiKey = 'YOU_API_KEY';
$queryText = urlencode('해피캠퍼스');
$url = 'http://www.happycampus.com/api/search/?query=' . $queryText;
$headers = [];
$headers[] = 'X-Hc-Client-Id: ' . $clientId;
$headers[] = 'X-Hc-Api-Key: ' . $apiKey;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PORT, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo "http status code: " . $httpStatusCode . "<br>";
if ($httpStatusCode == 200) {
    echo $response;
} else {
    echo "Error: " . $response;
}
?>
JAVA
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class ApiExample {
    public static void main(String[] args) {
        String clientId = "YOUR_CLIENT_ID";
        String apiKey = "YOUR_API_KEY";
        try {
            String queryText = URLEncoder.encode("해피캠퍼스", "UTF-8");
            String apiUrl = "http://www.happycampus.com/api/search/?query=" + queryText;

            URL url = new URL(apiUrl);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            conn.setRequestMethod("GET");
            conn.setRequestProperty("X-Hc-Client-Id", clientId);
            conn.setRequestProperty("X-Hc-Api-Key", apiKey);

            int httpStatusCode = conn.getResponseCode();
            BufferedReader br;
            if (httpStatusCode == 200) {
                br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            } else {
                br = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
            }

            String inputLine;
            StringBuilder response = new StringBuilder();
            while ((inputLine = br.readLine()) != null) {
                response.append(inputLine);
            }
            br.close();
            System.out.println(response.toString());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
PYTHON
import urllib.request

client_id = "YOUR_CLIENT_ID"
api_key = "YOUR_API_KEY"
query_text = urllib.parse.quote("해피캠퍼스")
url = "http://www.happycampus.com/api/search/?query=" + query_text

request = urllib.request.Request(url)
request.add_header("X-Hc-Client-Id", client_id)
request.add_header("X-Hc-Api-Key", api_key)

response = urllib.request.urlopen(request)
http_status_code = response.getcode()
if http_status_code == 200:
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print('Error Code: ' + http_status_code)