공통 사항
Common Response
공통응답
코드 | 코드명 |
---|---|
|
데이터 |
|
응답코드 |
|
메시지 |
에러코드
코드 | 코드명 |
---|---|
|
토큰을 찾을 수 없습니다. |
|
토큰이 만료되었습니다. |
|
토큰의 서명이 유효하지 않습니다. |
|
권한 정보가 없는 토큰입니다. |
|
지원하지 않는 토큰입니다. |
|
리프레시 토큰이 유효하지 않습니다. |
|
데이터베이스에 있는 리프레시 토큰과 다릅니다. |
|
리프레시 토큰 기한이 만료되었습니다. |
|
권한이 없는 유저입니다. |
|
애플 공개키 생성에 실패했습니다. |
|
애플 공개키와 맞지 않습니다. |
|
애플에서 제공한 발행처와 맞지 않습니다. |
|
애플에서 제공한 수신자와 맞지 않습니다. |
|
토큰 처리 과정에 문제가 생겼습니다. |
|
로그인 타입이 올바르지 않습니다. |
|
카카오 키가 만료되었습니다. |
|
Access Token 이 아직 만료되지 않았습니다. Access Token 을 이용해주세요. |
|
데이터베이스에 없는 유저입니다. |
|
중복된 닉네임 입니다. |
|
중복된 이메일과 소셜 타입입니다. |
|
닉네임은 1~7자의 영문 대소문자, 숫자, 한글로만 입력해주세요. |
|
임시 회원가입된 유저입니다. 추가 정보를 입력해주세요. |
|
생년월일이 null 입니다. |
|
데이터베이스에 없는 정책입니다. |
|
데이터베이스에 없는 유저 정책입니다. |
|
이미 등록된 관심 정책입니다. |
|
이미 등록된 수혜 정책입니다. |
|
FIREBASE 서버 오류 |
|
데이터베이스에 없는 피드입니다. |
|
이미 등록된 피드 제목입니다. |
|
gender 값이 올바르지 않은 값입니다. |
|
education 값이 올바르지 않은 값입니다. |
|
job 이 올바르지 않은 값입니다. |
|
area 값이 올바르지 않은 값입니다. |
|
providerType 값이 올바르지 않은 값입니다. |
|
supportPolicyType 값이 올바르지 않은 값입니다. |
|
policyType 값이 올바르지 않은 값입니다. |
|
city 값이 올바르지 않은 값입니다. |
|
policyDateType 이 올바르지 않은 값입니다. |
|
money 를 추출할 수 없습니다. |
|
houseHoldSize 값이 올바르지 않은 값입니다. |
|
educationLevel 값이 올바르지 않은 값입니다. |
|
academicStatus 값이 올바르지 않은 값입니다. |
|
specialSupportType 값이 올바르지 않은 값입니다. |
|
householdStructure 값이 올바르지 않은 값입니다. |
|
majorField 값이 올바르지 않은 값입니다. |
|
graduationTimeStatus 값이 올바르지 않은 값입니다. |
|
policyCategory 값이 올바르지 않은 값입니다. |
|
policyMethodType 값이 올바르지 않는 값입니다. |
|
에러 발생 |
정제 참고 Enum 목록
학교 레벨 (학적)
코드 | 코드명 |
---|---|
|
초등학교, 중학교 |
|
고등학교 |
|
대학교 |
|
대학원 (석, 박사) |
|
제한없음 |
학적 상태
코드 | 코드명 |
---|---|
|
재학중 |
|
휴학 |
|
졸업 예정 |
|
졸업 |
가구원 수 enum
코드 | 코드명 |
---|---|
|
1명 |
|
2명 |
|
3명 |
|
4명 |
|
5명 |
|
5명 이상 |
직업 코드
코드 | 코드명 |
---|---|
|
정규직, 직장인 |
|
계약직 근로자 |
|
자영업자 |
|
(예비, 초기) 창업자 |
|
프리랜서 |
|
실업자, 무직자 |
|
구직자, 미취업자 |
|
주부 |
|
농, 축, 수산업자 |
|
군인 |
|
제한없음 |
|
기타 |
특별 지원 타입
코드 | 코드명 |
---|---|
|
자립준비청년 |
|
장애인 |
|
한부모 가정 |
|
다문화 가정 |
|
조부모와 손자녀 가정 |
|
보훈 대상자 |
|
임신, 출산 |
|
북한 이탈 주민 |
|
(예비)신혼부부 |
|
제한없음 |
전공
코드 | 코드명 |
---|---|
|
인문사회 |
|
자연과학 |
|
공학 |
|
예체능 |
|
의학 |
|
제한없음 |
대학 졸업 후 시간 enum
코드 | 코드명 |
---|---|
|
졸업 후 2년이 지났어요 |
|
졸업 후 2년이 아직 안 지났어요 |
|
제한없음 |
정책 유형(정책 목록)
코드 | 코드명 |
---|---|
|
전체 |
|
일자리 |
|
주거 |
|
교육 |
|
문화/복지 |
|
참여/권리 |
정책 신청 방법
코드 | 코드명 |
---|---|
|
온라인신청 |
|
우편신청 |
|
방문신청 |
|
전화문의 |
|
빈값 |
정책 카테고리(태그)
코드 | 코드명 |
---|---|
|
현금 |
|
통장 |
|
대출 |
|
복지 |
|
공간 |
|
의료 |
|
주거 |
|
창업 |
|
취업 |
|
교육 |
|
직무 |
|
제한없음 |
나이 연령대
코드 | 코드명 |
---|---|
|
전체 |
|
10대 |
|
20대 |
|
30대 |
|
40대 |
|
50대 |
|
60대 |
|
70대 |
|
80대 |
|
90대 |
피드 카테고리
코드 | 코드명 |
---|---|
|
집 |
|
취업 후 |
|
취업 준비 |
|
교통 |
|
여가 |
|
건강 |
|
신혼부부 |
|
창업 |
|
전체 |
알림 타입
코드 | 코드명 |
---|---|
|
관심 정책 |
|
새 정책 |
|
마케팅 |
Request Header
HTTP Request 에 Authorization 이 존재하면 AccessToken 이 필요한 API 입니다.
Name | Description |
---|---|
|
API 인증 Access Token |
Auth API
로그인 API
HTTP Request
POST /auth/login HTTP/1.1
Content-Type: application/json
Content-Length: 129
Host: referin-dev.site
{
"providerType" : "KAKAO",
"token" : "p1b3M_ikmtHivvFJqwY5bXAYg-ilCq4E7DnJwlT5CisM0wAAAYOPy1oR",
"nickname" : "nickname"
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
||
|
|
소셜 토큰 (kakao는 code) |
|
|
|
O |
소셜 닉네임 (애플 첫 로그인 시에만 넣어주시면 됩니다.) |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 225
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"accessToken" : "access token",
"refreshToken" : "refresh token",
"nickname" : "유저 닉네임 test"
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
액세스토큰 |
|
|
|
리프레시 토큰 |
|
|
|
유저 닉네임 |
토큰 재발급 API
HTTP Request
POST /auth/reissue HTTP/1.1
Content-Type: application/json
Content-Length: 61
Host: referin-dev.site
{
"refreshToken" : "07b08e93-cff6-4cc9-8880-c86ee18b776e"
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
리프레쉬 토큰 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 225
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"accessToken" : "access token",
"refreshToken" : "refresh token",
"nickname" : "유저 닉네임 test"
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
액세스토큰 |
|
|
|
리프레시 토큰 |
|
|
|
유저 닉네임 |
HTTP Response
HTTP/1.1 401 Unauthorized
Content-Type: application/json
Content-Length: 128
{
"code" : 1006,
"isSuccess" : false,
"message" : "리프레시 토큰이 유효하지 않습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
User API
약관정보 수정 API
HTTP Request
PATCH /user/terms HTTP/1.1
Content-Type: application/json
Authorization: access token
Content-Length: 68
Host: referin-dev.site
{
"marketingStatus" : true,
"thirdPartyAgreementStatus" : true
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
마켓팅 동의 여부 |
|
|
|
개인정보 제3자 제공 동의 여부 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 215
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"accessToken" : "Test AccessToken",
"refreshToken" : "Test RefreshToken",
"nickname" : "cp3"
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
액세스 토큰 |
|
|
|
리프레시 토큰 |
|
|
|
유저 닉네임 |
회원 정보 수정 API
HTTP Request
PATCH /user/modify HTTP/1.1
Content-Type: application/json
Authorization: access token
Content-Length: 535
Host: referin-dev.site
{
"nickname" : "test",
"areaCode" : "SEOUL",
"cityCode" : "GANGSEO",
"householdSize" : "THREE_MEMBERS",
"studentStatus" : false,
"educationLevel" : "HIGH_SCHOOL",
"academicStatus" : "ENROLLED",
"lastEducationLevel" : "UNIVERSITY",
"jobTypes" : [ "FULL_TIME_EMPLOYEE" ],
"monthlyIncome" : 100000.0,
"juminNumber" : "9611191",
"specialSupportTypes" : [ "NEWLYWED_COUPLE" ],
"householderStatus" : true,
"homeOwnerShip" : true,
"majorField" : "ENGINEERING",
"graduationTimeStatus" : "TWO_YEARS_NOT_PASSED"
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
유저 닉네임 |
|
|
|
주민번호 7자리 |
|
|
|
||
|
|
||
|
|
||
|
|
학생 여부 |
|
|
|
||
|
|
||
|
|
||
|
|
||
|
|
한달 수입 |
|
|
|
||
|
|
세대주 여부 |
|
|
|
집 소유 여부 |
|
|
|
||
|
|
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 730
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"userId" : 1,
"nickname" : "test",
"age" : 25,
"gender" : "남성",
"address" : {
"areaCode" : "SEOUL",
"cityCode" : "GANGSEO"
},
"householdSize" : "THREE_MEMBERS",
"studentStatus" : false,
"educationLevel" : "HIGH_SCHOOL",
"academicStatus" : "ENROLLED",
"lastEducationLevel" : "UNIVERSITY",
"jobTypes" : [ "FULL_TIME_EMPLOYEE" ],
"monthlyIncome" : 100000.0,
"specialSupportTypes" : [ "NEWLYWED_COUPLE" ],
"householderStatus" : true,
"homeOwnerShip" : true,
"majorField" : "ENGINEERING",
"graduationTimeStatus" : "TWO_YEARS_NOT_PASSED"
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
유저 ID |
|
|
|
닉네임 |
|
|
|
나이 |
|
|
|
||
|
|
주소 |
|
|
|
||
|
|
||
|
|
||
|
|
학생 여부 |
|
|
|
||
|
|
||
|
|
||
|
|
||
|
|
월 수입 |
|
|
|
||
|
|
세대주 여부 |
|
|
|
집 소유 여부 |
|
|
|
||
|
|
유저 정보 조회 API
HTTP Request
GET /user HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: access token
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1383
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"userId" : 1,
"provider" : "KAKAO",
"userBasicInfo" : {
"email" : "test@naver.com",
"nickname" : "test",
"age" : 27,
"gender" : "남성",
"address" : {
"areaCode" : "SEOUL",
"cityCode" : "GANGSEO"
},
"monthlyIncome" : 100000.0,
"lastEducationLevel" : "UNIVERSITY",
"jobTypes" : [ "FULL_TIME_EMPLOYEE" ],
"householdSize" : "THREE_MEMBERS",
"studentStatus" : false,
"educationLevel" : "HIGH_SCHOOL",
"academicStatus" : "ENROLLED",
"specialSupportTypes" : [ "NEWLYWED_COUPLE" ]
},
"userAdditionalInfo" : {
"householderStatus" : true,
"homeOwnership" : true,
"majorField" : "ENGINEERING",
"graduationTimeStatus" : "TWO_YEARS_NOT_PASSED"
},
"userAlarmInfo" : {
"interestBenefitNotificationStatus" : null,
"daysBeforeStartDate" : 0,
"daysBeforeEndDate" : 0,
"newBenefitNotificationStatus" : null,
"marketingNotificationStatus" : null
},
"userTermsInfo" : {
"termsOfServiceStatus" : true,
"privacyStatus" : true,
"marketingStatus" : true,
"marketingStatusDate" : "2024-11-06",
"thirdPartyAgreement" : true,
"thirdPartyAgreementDate" : "2024-11-06"
}
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공여부 |
|
|
|
응답 메시지 |
|
|
|
응답 결과 |
|
|
|
유저 ID |
|
|
|
유저 제공자 타입 |
|
|
|
유저 이메일 |
|
|
|
유저 닉네임 |
|
|
|
유저 나이 |
|
|
|
유저 성별 |
|
|
|
유저 주소 정보 |
|
|
|
유저 주소 정보 |
|
|
|
유저 주소 정보 |
|
|
|
유저 월 소득 |
|
|
|
||
|
|
||
|
|
||
|
|
학생 여부 |
|
|
|
||
|
|
||
|
|
||
|
|
집 소유 여부 |
|
|
|
세대주 여부 |
|
|
|
||
|
|
||
|
|
관심 정책 알림 설정 여부 |
|
|
|
알림 신청 시작일 기준 |
|
|
|
알림 신청 종료일 기준 |
|
|
|
새로운 정책 알림 설정 여부 |
|
|
|
마케팅 알림 설정 여부 |
|
|
|
이용약관 동의 여부 |
|
|
|
개인정보처리방침 동의 여부 |
|
|
|
마케팅 동의 여부 |
|
|
|
마케팅 동의 날짜 |
|
|
|
개인정보 제3자 제공 동의 여부 |
|
|
|
개인정보 제3자 제공 동의 날짜 |
시/도 조회 API
HTTP Request
GET /user/area HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1071
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : [ {
"name" : "SEOUL",
"areaName" : "서울"
}, {
"name" : "INCHEON",
"areaName" : "인천"
}, {
"name" : "GYEONGGI",
"areaName" : "경기"
}, {
"name" : "GANGWON",
"areaName" : "강원"
}, {
"name" : "CHUNGBUK",
"areaName" : "충북"
}, {
"name" : "CHUNGNAM",
"areaName" : "충남"
}, {
"name" : "DAEJEON",
"areaName" : "대전"
}, {
"name" : "SEJONG",
"areaName" : "세종"
}, {
"name" : "GYEONGBUK",
"areaName" : "경북"
}, {
"name" : "GYEONGNAM",
"areaName" : "경남"
}, {
"name" : "DAEGU",
"areaName" : "대구"
}, {
"name" : "ULSAN",
"areaName" : "울산"
}, {
"name" : "BUSAN",
"areaName" : "부산"
}, {
"name" : "JEONBUK",
"areaName" : "전북"
}, {
"name" : "JEONNAM",
"areaName" : "전남"
}, {
"name" : "GWANGJU",
"areaName" : "광주"
}, {
"name" : "JEJU",
"areaName" : "제주"
} ]
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
||
|
|
시/도 한글 이름 |
시/군/구 조회 API
HTTP Request
GET /user/city?areaCode=SEOUL HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
Request Parameters
파라미터 | 필수값 | 설명 |
---|---|---|
|
true |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1615
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : [ {
"name" : "JONGRO",
"cityName" : "종로구"
}, {
"name" : "JUNG",
"cityName" : "중구"
}, {
"name" : "YONGSAN",
"cityName" : "용산구"
}, {
"name" : "SUNGDONG",
"cityName" : "성동구"
}, {
"name" : "GWANGJIN",
"cityName" : "광진구"
}, {
"name" : "DONGDAEMUN",
"cityName" : "동대문구"
}, {
"name" : "JUNGNANG",
"cityName" : "중랑구"
}, {
"name" : "SUNGBUK",
"cityName" : "성북구"
}, {
"name" : "GANGBUK",
"cityName" : "강북구"
}, {
"name" : "DOBONG",
"cityName" : "도봉구"
}, {
"name" : "NOWON",
"cityName" : "노원구"
}, {
"name" : "EUNPYEONG",
"cityName" : "은평구"
}, {
"name" : "SEODAEMUN",
"cityName" : "서대문구"
}, {
"name" : "MAPO",
"cityName" : "마포구"
}, {
"name" : "YANGCHEON",
"cityName" : "양천구"
}, {
"name" : "GANGSEO",
"cityName" : "강서구"
}, {
"name" : "GURO",
"cityName" : "구로구"
}, {
"name" : "GUMCHEON",
"cityName" : "금천구"
}, {
"name" : "YEONGDEUNGPO",
"cityName" : "영등포구"
}, {
"name" : "DONGJAK",
"cityName" : "동작구"
}, {
"name" : "GWANAK",
"cityName" : "관악구"
}, {
"name" : "SECHO",
"cityName" : "서초구"
}, {
"name" : "GANGNAM",
"cityName" : "강남구"
}, {
"name" : "SONGPA",
"cityName" : "송파구"
}, {
"name" : "GANGDONG",
"cityName" : "강동구"
} ]
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
||
|
|
시/군/구 한글 이름 |
유저 삭제 API
HTTP Request
DELETE /user HTTP/1.1
Content-Type: application/json
Authorization: access token
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공여부 |
|
|
|
응답 메시지 |
|
|
|
응답 결과 |
알람 정보 조회 API
HTTP Request
GET /user/notification HTTP/1.1
Authorization: access token
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 255
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"daysBeforeStartDate" : 3,
"daysBeforeEndDate" : 1,
"newBenefitNotificationStatus" : true,
"marketingNotificationStatus" : false
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
응답 결과 |
|
|
|
O |
알림 신청 시작일 기준 |
|
|
O |
알림 신청 종료일 기준 |
|
|
새로운 정책 알림 설정 여부 |
|
|
|
마케팅 알림 설정 여부 |
알림 정보 수정 API
HTTP Request
PATCH /user/notification HTTP/1.1
Content-Type: application/json
Authorization: access token
Content-Length: 140
Host: referin-dev.site
{
"daysBeforeStartDate" : 3,
"daysBeforeEndDate" : 1,
"newBenefitNotificationStatus" : true,
"marketingNotificationStatus" : false
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
O |
알림 신청 시작일 기준 (null 가능) |
|
|
O |
알림 신청 종료일 기준 (null 가능) |
|
|
새로운 정책 알림 설정 여부 |
|
|
|
마케팅 알림 설정 여부 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
응답 결과 |
fcm 토큰 업데이트
HTTP Request
PATCH /user/fcm_token HTTP/1.1
Authorization: access token
fcmToken: testFcmToken
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
알림 내역 목록 조회 API
HTTP Request
GET /notify?page=0&size=10 HTTP/1.1
Content-Type: application/json
Authorization: Access Token
Accept: application/json
Host: referin-dev.site
Request Parameters
파라미터 | 필수값 | 설명 |
---|---|---|
|
true |
페이지 번호 |
|
true |
페이지 당 데이터 수 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 997
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"content" : [ {
"type" : "INTERESTED_BENEFIT",
"typeDescription" : "관심 정책",
"title" : "정책 신청이 곧 마감돼요",
"content" : "관심있게 본 청년혜택정책 신청이 곧 마감돼요!",
"imageUrl" : "https://example.com/image.png",
"date" : "2024-01-01T00:00:00+09:00",
"deepLink" : "receive://policy/123"
} ],
"pageable" : {
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"pageNumber" : 0,
"pageSize" : 10,
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalPages" : 1,
"totalElements" : 1,
"last" : true,
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"number" : 0,
"first" : true,
"numberOfElements" : 1,
"size" : 10,
"empty" : false
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
||
|
|
알림 타입 설명 |
|
|
|
알림 제목 |
|
|
|
알림 내용 |
|
|
|
알림 이미지 URL |
|
|
|
알림 생성 날짜 |
|
|
|
알림 관련 딥 링크 |
|
|
|
페이징 정보 |
|
|
|
정렬 정보 |
|
|
|
정렬 여부 |
|
|
|
비정렬 여부 |
|
|
|
비어 있는 정렬 정보 여부 |
|
|
|
오프셋 |
|
|
|
페이지 크기 |
|
|
|
페이지 번호 |
|
|
|
페이지 여부 |
|
|
|
비페이지 여부 |
|
|
|
총 요소 수 |
|
|
|
총 페이지 수 |
|
|
|
마지막 페이지 여부 |
|
|
|
페이지 크기 |
|
|
|
현재 페이지 번호 |
|
|
|
현재 정렬 정보 |
|
|
|
현재 정렬 여부 |
|
|
|
현재 비정렬 여부 |
|
|
|
현재 비어 있는 정렬 정보 여부 |
|
|
|
현재 페이지 요소 수 |
|
|
|
첫 페이지 여부 |
|
|
|
비어 있는 페이지 여부 |
Policy API
인기검색어 조회 API
HTTP Request
GET /policy/popular HTTP/1.1
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 616
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"populars" : [ {
"keyword" : "청년 정책1"
}, {
"keyword" : "청년 정책2"
}, {
"keyword" : "청년 정책3"
}, {
"keyword" : "청년 정책4"
}, {
"keyword" : "청년 정책5"
}, {
"keyword" : "청년 정책6"
}, {
"keyword" : "청년 정책7"
}, {
"keyword" : "청년 정책8"
}, {
"keyword" : "청년 정책9"
}, {
"keyword" : "청년 정책10"
} ],
"batchExecuteTime" : "2024.08.05 00:00"
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
인기검색어 |
|
|
|
키워드 |
|
|
|
배치 실행 시간 |
정책 상세 조회 API
HTTP Request
GET /policy/1 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
End Point
/policy/{policyId}
Path Parameters
파라미터 | 양식 | 설명 |
---|---|---|
|
정책 ID |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1678
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"policyId" : 12,
"topInfo" : {
"policyName" : "청년도약계좌",
"imageUrl" : "https://example.com/image.png",
"organization" : "중앙정부",
"policyCategories" : [ "복지", "현금" ],
"summary" : "청년들에게 자립 기회를 제공하는 지원 정책",
"benefitInfo" : "100만원",
"applyStatus" : true,
"interestStatus" : true,
"dday" : 10
},
"qualificationInfo" : [ {
"name" : "age",
"title" : "나이",
"content" : "20 ~ 39세",
"applyStatus" : true
}, {
"name" : "region",
"title" : "지역",
"content" : "서울 강서구",
"applyStatus" : true
}, {
"name" : "income",
"title" : "소득",
"content" : "월 소득 3000만원 이하",
"applyStatus" : true
}, {
"name" : "job",
"title" : "직업",
"content" : "창업자, 가정주부",
"applyStatus" : true
}, {
"name" : "specialSupportType",
"title" : "특화대상",
"content" : "다문화가정, 신혼부부",
"applyStatus" : true
}, {
"name" : "specialNotes",
"title" : "특이사항",
"content" : null,
"applyStatus" : true
} ],
"supportContent" : "월 100만원 지급",
"applicationMethod" : {
"period" : "2024.01.01 - 2024.12.31",
"method" : [ "홈페이지 신청" ],
"requiredDocuments" : [ "신분증", "소득 증빙 서류" ],
"contactPhone" : "02-1234-5678"
},
"applicationUrl" : "https://example.com/apply"
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
정책 상세 정보 |
|
|
|
정책 ID |
|
|
|
정책 상단 정보 |
|
|
|
정책 이름 |
|
|
|
정책 이미지 URL |
|
|
|
O |
정책 기관 |
|
|
정책 태그 |
|
|
|
디데이 |
|
|
|
정책 요약 |
|
|
|
O |
수혜 정보 |
|
|
O |
신청 가능 여부 |
|
|
O |
관심 정책 여부 |
|
|
지원대상 |
|
|
|
지원대상 이름 |
|
|
|
지원대상 제목 |
|
|
|
O |
지원대상 내용 |
|
|
O |
지원대상 목록 신청 가능 여부 |
|
|
지원내용 |
|
|
|
신청방법 |
|
|
|
신청 기간 |
|
|
|
O |
필요 서류 |
|
|
O |
신청 방법 |
|
|
O |
문의 전화 |
|
|
O |
관련 링크 |
정책 목록 조회 API
HTTP Request
POST /policy/search HTTP/1.1
Content-Type: application/json
deviceToken: deviceTokenValue
Content-Length: 458
Host: referin-dev.site
{
"policyType" : "JOB",
"keyword" : "청년",
"page" : 0,
"size" : 10,
"sortInfo" : {
"sortField" : "latest",
"sortOrder" : "ASC"
},
"filterInfo" : {
"areaCode" : [ "SEOUL" ],
"filterEducationTypes" : [ "COLLEGE_GRADUATE_OR_ABOVE" ],
"specialSupportTypes" : [ "PERSON_WITH_DISABILITIES" ],
"minAge" : 20,
"maxAge" : 35,
"policyTypes" : [ "JOB", "RESIDENCE" ],
"policyCategories" : [ "HOUSING", "CASH" ]
}
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
조회할 페이지 번호 |
|
|
|
페이지당 레코드 수 |
|
|
|
O |
검색할 키워드 |
|
|
||
|
|
정렬 요청 정보 |
|
|
|
||
|
|
||
|
|
필터 요청 정보 |
|
|
|
O |
지역 필터 |
|
|
O |
|
|
|
O |
|
|
|
O |
최소 나이 필터 |
|
|
O |
최대 나이 필터 |
|
|
O |
|
|
|
O |
HTTP Header
Name | Description |
---|---|
|
인기 검색어 저장하기 위한 deviceToken |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1026
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"content" : [ {
"policyId" : 1,
"policyName" : "Test Policy",
"benefitInfo" : "100만원",
"imageUrl" : "https://referin-dev.site/image/policycategory/CASH.svg",
"dday" : 10
}, {
"policyId" : 1,
"policyName" : "Test Policy",
"benefitInfo" : "100만원",
"imageUrl" : "https://referin-dev.site/image/policycategory/CASH.svg",
"dday" : 10
} ],
"pageable" : {
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"pageNumber" : 0,
"pageSize" : 10,
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalPages" : 1,
"totalElements" : 2,
"last" : true,
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"number" : 0,
"first" : true,
"numberOfElements" : 2,
"size" : 10,
"empty" : false
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
정책 ID |
|
|
|
정책 이름 |
|
|
|
O |
수혜 사항 |
|
|
디데이 |
|
|
|
정책 이미지 URL |
|
|
|
페이징 정보 |
|
|
|
정렬 정보 |
|
|
|
정렬 여부 |
|
|
|
비정렬 여부 |
|
|
|
비어 있는 정렬 정보 여부 |
|
|
|
오프셋 |
|
|
|
페이지 크기 |
|
|
|
페이지 번호 |
|
|
|
페이지 여부 |
|
|
|
비페이지 여부 |
|
|
|
총 요소 수 |
|
|
|
총 페이지 수 |
|
|
|
마지막 페이지 여부 |
|
|
|
페이지 크기 |
|
|
|
현재 페이지 번호 |
|
|
|
현재 정렬 정보 |
|
|
|
현재 정렬 여부 |
|
|
|
현재 비정렬 여부 |
|
|
|
현재 비어 있는 정렬 정보 여부 |
|
|
|
현재 페이지 요소 수 |
|
|
|
첫 페이지 여부 |
|
|
|
비어 있는 페이지 여부 |
정책 카테고리 조회 API
HTTP Request
GET /policy/category HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 962
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : [ {
"name" : "NONE",
"description" : "전체",
"imageUrl" : "https://referin-dev.site/image/policytype/NONE.svg"
}, {
"name" : "JOB",
"description" : "일자리",
"imageUrl" : "https://referin-dev.site/image/policytype/JOB.svg"
}, {
"name" : "RESIDENCE",
"description" : "주거",
"imageUrl" : "https://referin-dev.site/image/policytype/RESIDENCE.svg"
}, {
"name" : "EDUCATION",
"description" : "교육",
"imageUrl" : "https://referin-dev.site/image/policytype/EDUCATION.svg"
}, {
"name" : "WELFARE_CULTURE",
"description" : "문화/복지",
"imageUrl" : "https://referin-dev.site/image/policytype/WELFARE_CULTURE.svg"
}, {
"name" : "PARTICIPATION_RIGHT",
"description" : "참여/권리",
"imageUrl" : "https://referin-dev.site/image/policytype/PARTICIPATION_RIGHT.svg"
} ]
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
정책 상세 정보 |
|
|
|
정책 카테고리 코드 |
|
|
|
정책 카테고리 설명 |
|
|
|
정책 카테고리 설명 |
홈 화면 추천 정책 API
HTTP Request
GET /policy/recommend HTTP/1.1
Content-Type: application/json
Authorization: Access Token
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1559
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : [ {
"policyId" : 1,
"policyName" : "국립예술단체 무대에서 꿈을 펼칠 청년예술가 260명 찾습니다",
"imageUrl" : "imageUrl",
"summary" : "국립예술단체와 기관에서 청년 교육단원을 통합 공모해요. 지난해보다 3배 이상 확대 운영하며, 공공 무대 참여 기회와 활동 지원금을 제공해드려요.",
"benefitMoney" : "12",
"benefitInfo" : null,
"dday" : -1
}, {
"policyId" : 2,
"policyName" : "넥스트로컬 6기(지역연계형 청년창업 지원사업)",
"imageUrl" : "imageUrl",
"summary" : "전국 지자체 협력을 통해 서울 청년의 지역자원 발굴과 창업 모델화를 지원하는 프로젝트예요.",
"benefitMoney" : null,
"benefitInfo" : "창업 지원",
"dday" : 1
}, {
"policyId" : 3,
"policyName" : "공정채용컨설팅",
"imageUrl" : "imageUrl",
"summary" : "기업의 공정하고 투명한 채용을 위해 컨설팅과 면접 교육을 제공해드려요.",
"benefitMoney" : null,
"benefitInfo" : "컨설팅과 면접 교육 제공",
"dday" : 2
}, {
"policyId" : 4,
"policyName" : "농촌에서 일하고 쉬는 워케이션 참가비 지원",
"imageUrl" : "imageUrl",
"summary" : "농촌형 워케이션 확산을 위해 기업과 근로자의 참가비를 지원해드려요.",
"benefitMoney" : "5",
"benefitInfo" : null,
"dday" : 3
} ]
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
정책 ID |
|
|
|
정책 이름 |
|
|
|
정책 로고 |
|
|
|
정책 요약 |
|
|
|
O |
수혜 금액 |
|
|
O |
혜택 정보 |
|
|
D-Day 정보 |
연령대별 인기 혜택 API
HTTP Request
GET /policy/view/count?ageRange=TWENTIES HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
Request Parameters
파라미터 | 필수값 | 설명 |
---|---|---|
|
true |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1208
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : [ {
"policyId" : 2036,
"policyName" : "송파 ICT청년창업지원센터 운영",
"imageUrl" : "image",
"benefitInfo" : "test",
"dday" : -1
}, {
"policyId" : 2420,
"policyName" : "넥스트로컬 6기(지역연계형 청년창업 지원사업)",
"imageUrl" : "image",
"benefitInfo" : "test",
"dday" : -1
}, {
"policyId" : 2689,
"policyName" : "로컬 팝업스토어 청년 CEO 발굴·육성사업",
"imageUrl" : "image",
"benefitInfo" : "test",
"dday" : -1
}, {
"policyId" : 2690,
"policyName" : "면접정장대여- 취업준비프리패스 [취준PASS]",
"imageUrl" : "image",
"benefitInfo" : "test",
"dday" : -1
}, {
"policyId" : 2720,
"policyName" : "2024 청년도전 지원사업 참여자 모집",
"imageUrl" : "image",
"benefitInfo" : "test",
"dday" : -1
}, {
"policyId" : 2724,
"policyName" : "2024년 구미시 청년창업지원사업 (청년 스타트업-6기, 청년 창업지원사업-15기)",
"imageUrl" : "image",
"benefitInfo" : "test",
"dday" : 0
} ]
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공여부 |
|
|
|
응답 메시지 |
|
|
|
응답 결과 |
|
|
|
정책 ID |
|
|
|
정책 이름 |
|
|
|
정책 혜택 정보 |
|
|
|
정책 로고 |
|
|
|
정책 종료일까지 남은 일수 |
정책 필터 정보 조회 API
HTTP Request
GET /policy/filter HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3673
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"areaFilterInfos" : [ {
"name" : "SEOUL",
"description" : "서울"
}, {
"name" : "INCHEON",
"description" : "인천"
}, {
"name" : "GYEONGGI",
"description" : "경기"
}, {
"name" : "GANGWON",
"description" : "강원"
}, {
"name" : "CHUNGBUK",
"description" : "충북"
}, {
"name" : "CHUNGNAM",
"description" : "충남"
}, {
"name" : "DAEJEON",
"description" : "대전"
}, {
"name" : "SEJONG",
"description" : "세종"
}, {
"name" : "GYEONGBUK",
"description" : "경북"
}, {
"name" : "GYEONGNAM",
"description" : "경남"
}, {
"name" : "DAEGU",
"description" : "대구"
}, {
"name" : "ULSAN",
"description" : "울산"
}, {
"name" : "BUSAN",
"description" : "부산"
}, {
"name" : "JEONBUK",
"description" : "전북"
}, {
"name" : "JEONNAM",
"description" : "전남"
}, {
"name" : "GWANGJU",
"description" : "광주"
}, {
"name" : "JEJU",
"description" : "제주"
} ],
"educationFilterInfos" : [ {
"name" : "HIGH_SCHOOL_OR_BELOW",
"description" : "고졸 이하"
}, {
"name" : "COLLEGE_UNDERGRADUATE",
"description" : "대학 재학"
}, {
"name" : "COLLEGE_GRADUATE_EXPECTED",
"description" : "대졸 예정"
}, {
"name" : "COLLEGE_GRADUATE_OR_ABOVE",
"description" : "대졸 이상"
} ],
"specialSupportTypeFilterInfos" : [ {
"name" : "SELF_RELIANT_YOUTH",
"description" : "자립준비청년"
}, {
"name" : "PERSON_WITH_DISABILITIES",
"description" : "장애인"
}, {
"name" : "SINGLE_PARENT_FAMILY",
"description" : "한부모 가정"
}, {
"name" : "MULTICULTURAL_FAMILY",
"description" : "다문화 가정"
}, {
"name" : "GRANDPARENT_GRANDCHILD_FAMILY",
"description" : "조부모와 손자녀 가정"
}, {
"name" : "NATIONAL_MERIT",
"description" : "보훈 대상자"
}, {
"name" : "PREGNANCY_CHILD_BIRTH",
"description" : "임신, 출산"
}, {
"name" : "NORTH_KOREAN_DEFECTOR",
"description" : "북한 이탈 주민"
}, {
"name" : "NEWLYWED_COUPLE",
"description" : "(예비)신혼부부"
} ],
"policyCategoryFilterInfos" : [ {
"name" : "JOB",
"description" : "일자리"
}, {
"name" : "RESIDENCE",
"description" : "주거"
}, {
"name" : "EDUCATION",
"description" : "교육"
}, {
"name" : "WELFARE_CULTURE",
"description" : "문화/복지"
}, {
"name" : "PARTICIPATION_RIGHT",
"description" : "참여/권리"
} ],
"policyTypeFilterInfos" : [ {
"name" : "CASH",
"description" : "현금"
}, {
"name" : "BANK_ACCOUNT",
"description" : "통장"
}, {
"name" : "LOAN",
"description" : "대출"
}, {
"name" : "WELFARE",
"description" : "복지"
}, {
"name" : "SPACE",
"description" : "공간"
}, {
"name" : "MEDICAL",
"description" : "의료"
}, {
"name" : "HOUSING",
"description" : "주거"
}, {
"name" : "ENTREPRENEURSHIP",
"description" : "창업"
}, {
"name" : "EMPLOYMENT",
"description" : "취업"
}, {
"name" : "EDUCATION",
"description" : "교육"
}, {
"name" : "JOB",
"description" : "직무"
} ]
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
지역 필터 정보 목록 |
|
|
|
지역 필터 이름 |
|
|
|
지역 필터 설명 |
|
|
|
학력 필터 정보 목록 |
|
|
|
학력 필터 이름 |
|
|
|
학력 필터 설명 |
|
|
|
특화 지원 필터 정보 목록 |
|
|
|
특화 지원 필터 이름 |
|
|
|
특화 지원 필터 설명 |
|
|
|
정책 카테고리 필터 정보 목록 |
|
|
|
정책 카테고리 필터 이름 |
|
|
|
정책 카테고리 필터 설명 |
|
|
|
정책 유형 필터 정보 목록 |
|
|
|
정책 유형 필터 이름 |
|
|
|
정책 유형 필터 설명 |
Feed API
피드 조회 API
HTTP Request
GET /feed/1 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
End Point
/feed/{id}
Path Parameters
파라미터 | 양식 | 설명 |
---|---|---|
|
조회할 피드의 ID |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1258
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"title" : "월세 지원, 저도 받을 수 있을까요?",
"imageUrl" : "image url",
"summary" : "오늘은 자취생이라면 누구나 고민인 월세! 여러분들의 자취 비용 부담을 덜어드릴 ‘청년월세 특별지원’ 혜택을 소개해 드릴게요 \uD83D\uDD25",
"contentDate" : "2024년 9월 9일에 작성된 글이에요.",
"components" : [ {
"id" : 1,
"componentType" : "TITLE",
"content" : {
"text" : "제목"
}
}, {
"id" : 1,
"componentType" : "CONTENT",
"content" : {
"text" : "내용"
}
}, {
"id" : 1,
"componentType" : "SUB_TITLE",
"content" : {
"text" : "부 제목"
}
}, {
"id" : 1,
"componentType" : "DIVIDER",
"content" : {
"dividerColor" : "0x000000",
"dividerHeight" : 20,
"paddingTop" : 10,
"paddingBottom" : 10
}
} ],
"policyInfo" : {
"policyId" : 1,
"policyName" : "청년 월세 지원",
"imageUrl" : "https://example_image.test",
"benefitInfo" : "월 20만원",
"dday" : 10
}
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
피드 제목 |
|
|
|
이미지 URL |
|
|
|
피드 요약 |
|
|
|
피드 작성 날짜 |
|
|
|
컴포넌트 리스트 |
|
|
|
컴포넌트 ID |
|
|
|
컴포넌트 타입 |
|
|
|
O |
컴포넌트 텍스트 내용 |
|
|
O |
구분선 색상 |
|
|
O |
구분선 높이 |
|
|
O |
위쪽 여백 |
|
|
O |
아래쪽 여백 |
|
|
정책 ID |
|
|
|
정책 이름 |
|
|
|
정책 로고 |
|
|
|
O |
정책 수혜 사항 |
|
|
정책 디데이 |
피드 목록 조회 API
HTTP Request
GET /feed/list?page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 888
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"content" : [ {
"feedId" : 1,
"imageUrl" : "imageUrl1",
"title" : "피드 1",
"summary" : "피드 1의 요약"
}, {
"feedId" : 2,
"imageUrl" : "imageUrl2",
"title" : "피드 2",
"summary" : "피드 2의 요약"
} ],
"pageable" : {
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"pageNumber" : 0,
"pageSize" : 10,
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalPages" : 1,
"totalElements" : 2,
"last" : true,
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"number" : 0,
"first" : true,
"numberOfElements" : 2,
"size" : 10,
"empty" : false
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
피드 ID |
|
|
|
이미지 URL |
|
|
|
피드 제목 |
|
|
|
피드 요약 |
|
|
|
정렬 여부 |
|
|
|
비정렬 여부 |
|
|
|
정렬 비어있음 여부 |
|
|
|
페이지 번호 |
|
|
|
페이지 크기 |
|
|
|
오프셋 |
|
|
|
페이징 처리 여부 |
|
|
|
페이징 처리되지 않음 여부 |
|
|
|
전체 페이지 수 |
|
|
|
전체 요소 수 |
|
|
|
페이지당 요소 수 |
|
|
|
현재 페이지 번호 |
|
|
|
현재 페이지에 포함된 요소 수 |
|
|
|
첫 번째 페이지 여부 |
|
|
|
마지막 페이지 여부 |
|
|
|
비어있는 페이지 여부 |
|
|
|
비정렬 여부 |
|
|
|
정렬 여부 |
|
|
|
정렬 비어있음 여부 |
피드 카테고리로 피드 목록 조회 API
HTTP Request
GET /feed/list/category?feedCategory=HOME&page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
Request Parameters
파라미터 | 필수값 | 설명 |
---|---|---|
|
true |
피드 카테고리 |
|
true |
페이지 번호 (0부터 시작) |
|
true |
페이지 크기 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 888
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"content" : [ {
"feedId" : 1,
"imageUrl" : "imageUrl1",
"title" : "피드 1",
"summary" : "피드 1의 요약"
}, {
"feedId" : 2,
"imageUrl" : "imageUrl2",
"title" : "피드 2",
"summary" : "피드 2의 요약"
} ],
"pageable" : {
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"pageNumber" : 0,
"pageSize" : 10,
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalPages" : 1,
"totalElements" : 2,
"last" : true,
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"number" : 0,
"first" : true,
"numberOfElements" : 2,
"size" : 10,
"empty" : false
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
피드 ID |
|
|
|
이미지 URL |
|
|
|
피드 제목 |
|
|
|
피드 요약 |
|
|
|
정렬 여부 |
|
|
|
비정렬 여부 |
|
|
|
정렬 비어있음 여부 |
|
|
|
페이지 번호 |
|
|
|
페이지 크기 |
|
|
|
오프셋 |
|
|
|
페이징 처리 여부 |
|
|
|
페이징 처리되지 않음 여부 |
|
|
|
전체 페이지 수 |
|
|
|
전체 요소 수 |
|
|
|
페이지당 요소 수 |
|
|
|
현재 페이지 번호 |
|
|
|
현재 페이지에 포함된 요소 수 |
|
|
|
첫 번째 페이지 여부 |
|
|
|
마지막 페이지 여부 |
|
|
|
비어있는 페이지 여부 |
|
|
|
비정렬 여부 |
|
|
|
정렬 여부 |
|
|
|
정렬 비어있음 여부 |
피드 저장 API
HTTP Request
POST /feed HTTP/1.1
Content-Type: application/json
Content-Length: 953
Host: referin-dev.site
{
"feedCategories" : [ "HOME", "POST_EMPLOYMENT" ],
"title" : "월세 지원, 저도 받을 수 있을까요?",
"summary" : "자취생 월세 지원 정책 소개",
"components" : [ {
"id" : 4,
"componentType" : "TITLE",
"text" : "제목",
"dividerColor" : null,
"dividerHeight" : null,
"paddingTop" : null,
"paddingBottom" : null
}, {
"id" : 5,
"componentType" : "CONTENT",
"text" : "내용",
"dividerColor" : null,
"dividerHeight" : null,
"paddingTop" : null,
"paddingBottom" : null
}, {
"id" : 6,
"componentType" : "SUB_TITLE",
"text" : "부 제목",
"dividerColor" : null,
"dividerHeight" : null,
"paddingTop" : null,
"paddingBottom" : null
}, {
"id" : 7,
"componentType" : "DIVIDER",
"text" : null,
"dividerColor" : "0x000000",
"dividerHeight" : 20,
"paddingTop" : 10,
"paddingBottom" : 10
} ],
"bizId" : "BIZ123456"
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
피드 카테고리 목록 |
|
|
|
피드 제목 |
|
|
|
피드 요약 |
|
|
|
컴포넌트 ID |
|
|
|
컴포넌트 타입 (TITLE, CONTENT, SUB_TITLE, DIVIDER) |
|
|
|
O |
컴포넌트 텍스트 내용 |
|
|
O |
구분선 색상 |
|
|
O |
구분선 높이 |
|
|
O |
위쪽 여백 |
|
|
O |
아래쪽 여백 |
|
|
정책 BIZ ID |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
O |
결과 |
피드 수정 API
HTTP Request
PATCH /feed HTTP/1.1
Content-Type: application/json
Content-Length: 558
Host: referin-dev.site
{
"feedCategories" : [ "HOME", "LEISURE" ],
"title" : "수정된 피드 제목",
"summary" : "수정된 피드 요약",
"components" : [ {
"id" : 1,
"componentType" : "TITLE",
"text" : "수정된 제목",
"dividerColor" : null,
"dividerHeight" : null,
"paddingTop" : null,
"paddingBottom" : null
}, {
"id" : 2,
"componentType" : "CONTENT",
"text" : "수정된 내용",
"dividerColor" : null,
"dividerHeight" : null,
"paddingTop" : null,
"paddingBottom" : null
} ],
"bizId" : "BIZ123456"
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
수정할 피드 제목 |
|
|
|
O |
수정할 피드 요약 |
|
|
비즈니스 ID |
|
|
|
O |
피드 카테고리 목록 |
|
|
O |
컴포넌트 ID |
|
|
O |
컴포넌트 타입 |
|
|
O |
컴포넌트 텍스트 |
|
|
O |
구분선 색상 |
|
|
O |
구분선 높이 |
|
|
O |
위쪽 여백 |
|
|
O |
아래쪽 여백 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
O |
결과 |
피드 삭제 API
HTTP Request
DELETE /feed HTTP/1.1
Content-Type: application/json
Content-Length: 68
Host: referin-dev.site
{
"feedTitle" : "월세 지원, 저도 받을 수 있을까요?"
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
피드 제목 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
O |
결과 |
User-Policy API
관심 정책 리스트 조회 API
HTTP Request
GET /user/policy?page=0&size=10 HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Host: localhost:8080
Request Parameters
파라미터 | 필수값 | 설명 |
---|---|---|
|
조회할 페이지 번호 |
|
|
페이지당 레코드 수 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1222
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"content" : [ {
"policyId" : 1,
"policyName" : "청년도약계좌",
"benefitInfo" : "beneift info",
"policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
"imageUrl" : "정책 로고 url",
"dday" : 10
}, {
"policyId" : 2,
"policyName" : "청년도약계좌",
"benefitInfo" : "beneift info",
"policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
"imageUrl" : "정책 로고 url",
"dday" : 10
} ],
"pageable" : {
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"pageNumber" : 0,
"pageSize" : 10,
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalPages" : 1,
"totalElements" : 2,
"last" : true,
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"number" : 0,
"first" : true,
"numberOfElements" : 2,
"size" : 10,
"empty" : false
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
정책 ID |
|
|
|
정책 이름 |
|
|
|
정책 소개 |
|
|
|
정책 로고 |
|
|
|
O |
정책 혜택 정보 |
|
|
디데이 |
|
|
|
페이징 정보 |
|
|
|
정렬 정보 |
|
|
|
정렬 여부 |
|
|
|
비정렬 여부 |
|
|
|
비어 있는 정렬 정보 여부 |
|
|
|
오프셋 |
|
|
|
페이지 크기 |
|
|
|
페이지 번호 |
|
|
|
페이지 여부 |
|
|
|
비페이지 여부 |
|
|
|
총 요소 수 |
|
|
|
총 페이지 수 |
|
|
|
마지막 페이지 여부 |
|
|
|
페이지 크기 |
|
|
|
현재 페이지 번호 |
|
|
|
현재 정렬 정보 |
|
|
|
현재 정렬 여부 |
|
|
|
현재 비정렬 여부 |
|
|
|
현재 비어 있는 정렬 정보 여부 |
|
|
|
현재 페이지 요소 수 |
|
|
|
첫 페이지 여부 |
|
|
|
비어 있는 페이지 여부 |
마감된 관심 정책 리스트 조회 API
HTTP Request
GET /user/policy/expired?page=0&size=10 HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Host: referin-dev.site
Request Parameters
파라미터 | 필수값 | 설명 |
---|---|---|
|
조회할 페이지 번호 |
|
|
페이지당 레코드 수 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1222
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : {
"content" : [ {
"policyId" : 1,
"policyName" : "청년도약계좌",
"benefitInfo" : "beneift info",
"policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
"imageUrl" : "정책 로고 url",
"dday" : 10
}, {
"policyId" : 2,
"policyName" : "청년도약계좌",
"benefitInfo" : "beneift info",
"policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
"imageUrl" : "정책 로고 url",
"dday" : 10
} ],
"pageable" : {
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"pageNumber" : 0,
"pageSize" : 10,
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"totalPages" : 1,
"totalElements" : 2,
"last" : true,
"sort" : {
"sorted" : false,
"unsorted" : true,
"empty" : true
},
"number" : 0,
"first" : true,
"numberOfElements" : 2,
"size" : 10,
"empty" : false
}
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
|
|
|
정책 ID |
|
|
|
정책 이름 |
|
|
|
정책 소개 |
|
|
|
정책 로고 |
|
|
|
O |
정책 혜택 정보 |
|
|
디데이 |
|
|
|
페이징 정보 |
|
|
|
정렬 정보 |
|
|
|
정렬 여부 |
|
|
|
비정렬 여부 |
|
|
|
비어 있는 정렬 정보 여부 |
|
|
|
오프셋 |
|
|
|
페이지 크기 |
|
|
|
페이지 번호 |
|
|
|
페이지 여부 |
|
|
|
비페이지 여부 |
|
|
|
총 요소 수 |
|
|
|
총 페이지 수 |
|
|
|
마지막 페이지 여부 |
|
|
|
페이지 크기 |
|
|
|
현재 페이지 번호 |
|
|
|
현재 정렬 정보 |
|
|
|
현재 정렬 여부 |
|
|
|
현재 비정렬 여부 |
|
|
|
현재 비어 있는 정렬 정보 여부 |
|
|
|
현재 페이지 요소 수 |
|
|
|
첫 페이지 여부 |
|
|
|
비어 있는 페이지 여부 |
관심 정책 저장 API
HTTP Request
POST /user/policy/1 HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Host: localhost:8080
End Point
/user/policy/{policyId}
Path Parameters
파라미터 | 양식 | 설명 |
---|---|---|
|
정책 ID |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
관심 정책 삭제 API
HTTP Request
DELETE /user/policy HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Content-Length: 31
Host: referin-dev.site
{
"policyIds" : [ 1, 2, 3 ]
}
Request Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
정책 ID |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답코드 |
|
|
|
성공여부 |
|
|
|
메시지 |
|
|
|
응답 결과 |
TEST API
알림 전송 테스트
HTTP Request
POST /notify/test HTTP/1.1
Authorization: access Token
Host: referin-dev.site
Content-Type: application/x-www-form-urlencoded
notificationType=NEW_BENEFIT
Request Parameters
파라미터 | 필수값 | 설명 |
---|---|---|
|
true |
알림 타입 |
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109
{
"code" : 200,
"isSuccess" : true,
"message" : "요청에 성공하였습니다.",
"result" : null
}
Response Fields
Path | Type | Optional | Description |
---|---|---|---|
|
|
응답 코드 |
|
|
|
성공 여부 |
|
|
|
응답 메시지 |
|
|
|
응답 결과 |