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;
}
?>
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);
}
}
}
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)