오픈 API | 출퇴근 기능 활용하기!
안녕하세요 원티드스페이스입니다😀
원티드스페이스 기능 중 아래 기능은 오픈 API기능을 통해 원티드스페이스 앱을 사용하지 않고, 출퇴근 기능을 사용할 수 있도록, API기능을 만들었습니다.
아래 내용을 참고해서 API를 연동해주세요.
*아래 내용을 내부 개발자에게 전달해서 사용해주시면 되고, 연동 시 어려운 점이 있으면 챗봇을 통해 문의해주세요
Open API 설정
위 링크를 눌러 해당 페이지로 이동해주세요.
(해당 페이지는 최고 관리자만 접속 가능하니, API키와 시크릿 키는 최고관리자가 발급 후 개발자에게 안내해주세요.)
*API의 경우 근태 등의 정보를 포함하고 있음으로, 설정 및 권한 부여 시 반드시 주의해서 사용해주세요.
발급을 눌러 API와 시크릿키를 생성해주세요.
*** 발급 받은 API키와 시크릿키는 절대 공개된 곳에 오픈하지 마세요.**
API 권한 설정
필요한 API만 선택해서 저장해주세요.
IP보안 설정
API를 호출할 수 있는 IP를 입력해주세요. 입력하지 않으면, 모든 IP에서 해당 API를 호출할 수 있습니다.
인증
- HTTP Header에 Authorization에 오픈API시크릿키를 입력해주세요.
- 요청 시 key에 오픈API키를 입력해주세요.
제한
- 1분에 30번만 호출할 수 있어요.
- 호출당 50개의 결과가 조회돼요.
출퇴근 현황 조회
[GET] https://api.wantedspace.ai/tools/openapi/worktime/
Request Parameters.
| 이름 | 타입 | 필수여부 | 설명 |
|---|---|---|---|
| key | String | O | 오픈API key |
| date | String | O | 조회할 날짜 (ex. 2022-06-09) |
| String | X | 조회할 이메일 주소 |
Response
| 이름 | 타입 | 설명 |
|---|---|---|
| next | String | 다음 페이지 URL |
| previous | String | 이전 페이지 URL |
| count | Number | 총 조회 개수 |
| results | Array | 조회결과 |
조회결과
| 이름 | 설명 |
|---|---|
| username | 이름 |
| 이메일 | |
| team_name | 팀이름 |
| eid | 사원번호 |
| wk_date | 조회날짜 |
| wk_start_time | 출근시간 |
| wk_end_time | 퇴근시간 |
| wk_start_time_sch | 출근시간 스케줄 |
| wk_end_time_sch | 퇴근시간 스케줄 |
| wk_time_except | 제외시간(분) |
| wk_time_except_legal | 휴게시간(분) |
| wk_time | 근무시간(오늘 제외) |
| wk_time_today | 근무시간(오늘, 조회시간 기준으로 계산됨) |
| wk_memo | 메모 |
| wk_approved | 출근, 퇴근 결재 승인여부 - REQ: 요청됨, APV: 승인됨, DNY: 반려됨, NUL: 결재자 없음 - IN: 출근, OUT: 퇴근 ex) APV_IN/APV_OUT는 출퇴근 결재가 모두 승인된 상태 |
| work_except | 제외시간 목록 - wk_except_start_time: 제외 시작 시간 - wk_except_end_time: 제외 종료 시간 - wk_except_time_min: 제외시간(분) |
Example
Request
curl -H "Authorization: {오픈API시크릿키}"\
-X GET "<https://api.wantedspace.ai/tools/openapi/worktime/?key={오픈API키}&date=2022-06-09>"
Response
{
"next": null,
"previous": null,
"count": 2,
"results": [
{
"username": "김샘",
"email": "a25@abc.com",
"team_name": "AI팀",
"eid": "",
"wk_date": "2022-06-09",
"wk_start_time": "2022-06-09T09:00:00+09:00",
"wk_end_time": "2022-06-09T18:00:00+09:00",
"wk_start_time_sch": "2022-06-09T09:00:00+09:00",
"wk_end_time_sch": "2022-06-09T19:30:00+09:00",
"wk_time_except": 0,
"wk_time_except_legal": 60,
"wk_time": 480,
"wk_time_today": 480,
"memo": "",
"wk_approved": "APV_IN/APV_OUT",
"work_except": []
},
{
"username": "복봄",
"email": "a26@abc.com",
"team_name": "CEO",
"eid": "",
"wk_date": "2022-06-09",
"wk_start_time": "2022-06-09T09:00:00+09:00",
"wk_end_time": "2022-06-09T18:00:00+09:00",
"wk_start_time_sch": "2022-06-09T09:00:00+09:00",
"wk_end_time_sch": "2022-06-09T19:30:00+09:00",
"wk_time_except": 0,
"wk_time_except_legal": 65,
"wk_time": 475,
"wk_time_today": 475,
"memo": "",
"wk_approved": "APV_IN/APV_OUT",
"work_except": [
{
"wk_except_start_time": "2022-06-09T18:19:22.137414+09:00",
"wk_except_end_time": "2022-06-09T18:42:24.425192+09:00",
"wk_except_time_min": 23
}
]
},
]
}
출퇴근 신청
[POST] https://api.wantedspace.ai/tools/openapi/worktime/
- 오늘의 출근, 퇴근, 자리비움 신청할 때 사용해요
Request Parameters
- Content-Type: application/json
| 이름 | 타입 | 필수여부 | 설명 |
|---|---|---|---|
| key | String | O | 오픈API key |
| check_type | String | O | 출근, 퇴근 또는 자리비움 유형 |
| String | O | 신청할 이메일 주소 |
Response
| 이름 | 설명 |
|---|---|
| username | 이름 |
| 이메일 | |
| team_name | 팀이름 |
| eid | 사원번호 |
| wk_date | 조회날짜 |
| wk_start_time | 출근시간 |
| wk_end_time | 퇴근시간 |
| wk_time_except | 제외시간(분) |
| wk_time_except_legal | 휴게시간(분) |
| wk_time | 근무시간(오늘 제외) |
| wk_time_today | 근무시간(오늘, 조회시간 기준으로 계산됨) |
| wk_memo | 메모 |
| wk_approved | 출근, 퇴근 결재 승인여부 - REQ: 요청됨, APV: 승인됨, DNY: 반려됨, NUL: 결재자 없음 - IN: 출근, OUT: 퇴근 ex) APV_IN/APV_OUT는 출퇴근 결재가 모두 승인된 상태 |
| work_except | 제외시간 목록 - wk_except_start_time: 제외 시작 시간 - wk_except_end_time: 제외 종료 시간 - wk_except_time_min: 제외시간(분) |
| open api에서는 사용안함 | |
| open api에서는 사용안함 | |
| open api에서는 사용안함 |
Example
Request
curl -d '{"key": "{오픈API키}", "check_type": "IN","email": "a13@test.com"}' \
-H "Authorization: {오픈API시크릿키}" \
-H "Content-Type: application/json" \
-X POST "<https://api.wantedspace.ai/tools/openapi/worktime/>"
Response
{
"username": "하아름",
"email": "a13@test.com",
"team_name": "채용사업부",
"eid": "123123",
"wk_date": "2022-06-27",
"wk_start_time": null,
"wk_end_time": null,
"wk_time_except": 0,
"wk_time_except_legal": 0,
"wk_time": 0,
"wk_time_today": 0,
"wk_memo": "",
"wk_approved": "NUL_IN/NUL_OUT",
"work_except": [],
"loc_lat": -1.11,
"loc_lon": -1.11,
"reason": ""
}
출퇴근 수정
[PUT] https://api.wantedspace.ai/tools/openapi/worktime/update_worktime/
- 어제 또는 오늘의 출퇴근 기록은 출퇴근 수정으로 변경할 수 있어요.
Request Parameters
- Content-Type: application/json
| 이름 | 타입 | 필수여부 | 설명 |
|---|---|---|---|
| key | String | O | 오픈API key |
| String | O | 이메일 | |
| wk_date | String | O | 수정할 날짜 (ex. 2022-06-14) |
| wk_start_time | String | X | 출근시간 (ex. 2022-06-14T10:00:00+09:00) |
| wk_end_time | String | X | 퇴근시간 (ex. 2022-06-14T18:00:00+09:00) |
| wk_memo | String | X | 메모 |
| work_except | Array | X | 제외시간 |
Response
"Success" 200 ok
Example
Request
curl -d '
{"key": "{오픈API키}",
"email": "a13@test.com",
"wk_date": "2022-06-14",
"wk_end_time": "2022-06-14T18:00:00+09:00",
"wk_start_time": "2022-06-14T09:00:00+09:00",
"wk_memo": "abcd",
"work_except": [
{
"wk_except_start_time": "2022-06-14T10:00:00+09:00",
"wk_except_end_time": "2022-06-14T10:30:00+09:00"
}
]
}' \
-H "Authorization: {오픈API시크릿키}" \
-H "Content-Type: application/json" \
-X PUT "<https://api.wantedspace.ai/tools/openapi/worktime/update_worktime/>"
Response
"Success"
출퇴근 삭제
[DELETE] https://api.wantedspace.ai/tools/openapi/worktime/**{이메일}**/
Request Parameters
| 이름 | 타입 | 필수여부 | 설명 |
|---|---|---|---|
| key | String | O | 오픈API key |
| wk_date | String | O | 삭제할 날짜 (ex. 2022-06-14) |
Response
"Success" 200 ok
Example
Reqeust
curl -H "Authorization: {오픈API시크릿키}"\
-X DELETE "<https://api.wantedspace.ai/tools/openapi/worktime/a13@test.com/?key={오픈API키}&wk_date=2022-06-09>"
Response
"Success"