Skip to main content

양식 생성

인증서 양식 생성 (POST)

인증서 양식을 생성합니다.

  • Method: POST
  • URL: /achievements/forms

Request Body (JSON)

필드타입필수유효성검사설명
namestringYes-인증서 폼의 이름
descriptionstringNo-인증서 폼 설명
typestring (enum)Yescompletion, activity, license, career, award, recommendation, membership, degree 중 하나인증서 폼의 유형
tagsstring[]No각 요소가 문자열이어야 함스킬 태그 등, 인증서 폼에 적용할 태그 배열
prefixstringNo알파벳만 포함, 최대 5자인증서 폼 접두사 (예: 인증번호 접두사)
program_namestringNo-프로그램 이름
program_typestringNo-프로그램 종류
program_urlstringNo-프로그램 URL
course_begin_atstring (ISO 8601 Date)NoISO8601 형식 (예: "2025-04-03T00:00:00.000Z")코스 시작일
course_end_atstring (ISO 8601 Date)NoISO8601 형식코스 종료일
achievementCertificateDesignIdnumberYes정수여야 함인증서 템플릿(디자인) ID
achievementBadgeDesignIdnumberYes정수여야 함뱃지 디자인 ID
requirementsRequirement[]No각 요소는 아래의 서브 스키마를 따름인증서 폼에 대한 요구사항 배열 (예: 취득 조건 등)

Requirement (object)

필드타입필수유효성검사설명
typestringNo-요구사항의 유형
urlstringNo-요구사항 관련 URL
descriptionstringNo-요구사항의 상세 설명
ordernumberNo정수, 최소 0요구사항 순서(정렬 기준으로 사용)

Request Body 예시

{
"name": "프로그래밍 기초 과정 수료증",
"description": "프로그래밍 기초 과정을 성공적으로 수료한 학습자에게 발급되는 인증서입니다.",
"type": "completion",
"tags": ["programming", "basic", "python"],
"prefix": "PROG",
"program_name": "프로그래밍 기초 과정",
"program_type": "온라인 강의",
"program_url": "https://example.com/basic-programming",
"course_begin_at": "2024-03-01T00:00:00.000Z",
"course_end_at": "2024-06-30T23:59:59.999Z",
"achievementCertificateDesignId": 1,
"achievementBadgeDesignId": 1,
"requirements": [
{
"type": "수료 조건",
"description": "모든 과제 제출 완료",
"order": 1
},
{
"type": "수료 조건",
"description": "최종 평가 70점 이상 획득",
"order": 2
}
]
}

Response

{
"statusCode": 201,
"message": "인증서 폼이 성공적으로 생성되었습니다."
}

오류 코드

상태 코드에러메시지상세 설명
400BadRequest잘못된 요청입니다.요청 본문에 필수 필드 누락 또는 유효하지 않은 값 제출 시
400ValidationErrorPrefix는 알파벳만 포함해야 합니다.prefix 필드에 알파벳 외 문자 포함 시
400ValidationErrorPrefix는 최대 5자까지만 허용됩니다.prefix 필드가 5자를 초과할 경우
401UnauthorizedInvalid token인증 정보가 올바르지 않은 경우
404AchievementFormNotFound유효하지 않은 인증서 폼 ID입니다.도메인 정보가 올바르지 않은 경우
404CertificateDesignNotFoundID가 achievementCertificateDesignId인 템플릿을 찾을 수 없습니다.존재하지 않는 인증서 템플릿 ID 지정 시
404BadgeDesignNotFoundID가 achievementBadgeDesignId인 뱃지를 찾을 수 없습니다.존재하지 않는 뱃지 디자인 ID 지정 시
500InternalServerError인증서 발급 중 예기치 않은 오류가 발생했습니다.서버 에러

Request Sample

String url = "https://api.test.kolleges.net/open-api/achievements/forms";

String jsonBody = "{" +
"\"name\": \"OpenBadge 3.0 Certificate\"," +
"\"description\": \"This certificate is for achievement\"," +
"\"type\": \"completion\"," +
"\"tags\": [\"skill1\", \"skill2\"]," +
"\"prefix\": \"SB\"," +
"\"program_name\": \"Program Name\"," +
"\"program_type\": \"Online\"," +
"\"program_url\": \"https://example.com/program\"," +
"\"course_begin_at\": \"2025-04-03T00:00:00.000Z\"," +
"\"course_end_at\": \"2025-05-03T00:00:00.000Z\"," +
"\"achievementCertificateDesignId\": 165," +
"\"achievementBadgeDesignId\": 83," +
"\"requirements\": [" +
"{" +
"\"type\": \"score\"," +
"\"url\": \"https://example.com/requirement-info\"," +
"\"description\": \"해당 과제 완료\"," +
"\"order\": 1" +
"}" +
"]" +
"}";

HttpResponse<String> response = Unirest.post(url)
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer " + apiKey)
.body(jsonBody)
.asString();

System.out.println("Status: " + response.getStatus());
System.out.println("Response: " + response.getBody());