WORKPLACE [g]

참고

네이버 클라우드 플랫폼의 상품 사용 방법을 보다 상세하게 제공하고, 다양한 API의 활용을 돕기 위해 [설명서][API 참조서]를 구분하여 제공하고 있습니다.

WORKPLACE [g] API 참조서 바로가기 >>
WORKPLACE g 설명서 바로가기 >>

개요

Workplace[g]상품의 조직/사원/직급/직책/기본정보 설정등을 설정 할 수 있는 API를 제공합니다.
HTTP 방식의 POST/PUT/DELETE 메서드 호출을 통해서 이루어집니다.

공통설정

Workplace[g] URL

POST/PUT/DELETE
https://workplaceg.apigw.ntruss.com/organization/apigw/v1

요청 헤더

헤더 명 설명
x-ncp-apigw-timestamp 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타내며
API Gateway 서버와 시간차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주

x-ncp-apigw-timestamp:{Timestamp}
x-ncp-apigw-api-key APIGW 에서 발급받은 키 값
x-ncp-apigw-api-key:{API Gateway API Key}
x-ncp-iam-access-key 네이버 클라우드 플랫폼 포털에서 발급받은 Access Key ID 값
x-ncp-iam-access-key:{Account Access Key}
x-ncp-apigw-signature-v1 Access Key ID 값 과 Secret Key 로 암호화한 서명
x-ncp-apigw-signature-v1:{API Gateway Signature}
Content-Type Request body content type을 application/json 으로 지정
Content-Type: application/json

인증 헤더

WORKPLACE[g] API는 네이버 클라우드 플랫폼 API Gateway를 통하여 제공되며, API Gateway에 등록된 API를 사용하기 위해서는 3가지 인증키(Access Key ID, Secret Key, API Key)를 발급받아야 합니다

자세한 내용은 NAVER CLOUD PLATFORM API를 참고 부탁드립니다

  • 인증키 생성
    • 네이버 클라우드 플랫폼 포털의 마이페이지 > 계정관리 > 인증키 관리 메뉴에서 신규 API 인증키 생성을 클릭하여 Access Key ID, Secret Key를 생성합니다
    • 만약 Access Key ID, Secret Key가 있다면 해당 키를 사용합니다.

요청 예시

curl -i -X GET \
   -H "x-ncp-apigw-timestamp:1505290625682" \
   -H "x-ncp-apigw-api-key:cstWXuw4wqp1EfuqDwZeMz5fh0epaTykRRRuy5Ra" \
   -H "x-ncp-iam-access-key:D78BB444D6D3C84CA38A" \
   -H "x-ncp-apigw-signature-v1:WTPItrmMIfLUk/UyUIyoQbA/z5hq9o3G8eQMolUzTEo=" \
 'https://workplageg.apigw.ntruss.com//calendar/v1/holiday?year=2018&locale=ko_KR&companyId=e721e2da-29ee-4782-9672-3d2b150ac1a6'
  • Signature 생성(개행 문자는 \n을 사용)

    • 요청에 맞게 StringToSign를 생성하고 SecretKey로 HmacSHA256 알고리즘으로 암호화한 후 Base64로 인코딩합니다
    • 이 값을 x-ncp-apigw-signature-v1로 사용합니다.
  • 샘플 코드

public String makeSignature() {
    String space = " ";  // 공백
    String newLine = "\n";  // 줄바꿈
    String method = "GET";  // HTTP 메소드
    String url = "/calendar/v1/holiday?year=2018&locale=ko_KR&companyId=e721e2da-29ee-4782-9672-3d2b150ac1a6";  // 도메인을 제외한 "/" 아래 전체 url (쿼리스트링 포함)
    String timestamp = "{timestamp}";  // 현재 타임스탬프 (epoch, millisecond)
    String apiKey = "{apiKey}";  // api key (from api gateway)
    String accessKey = "{accessKey}";  // access key id (from portal or Sub Account)
    String secretKey = "{secretKey}";  // secret key (from portal or Sub Account)

    String message = new StringBuilder()
        .append(method)
        .append(space)
        .append(url)
        .append(newLine)
        .append(timestamp)
        .append(newLine)
        .append(apiKey)
        .append(newLine)
        .append(accessKey)
        .toString();

    SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), "HmacSHA256");
    Mac mac = Mac.getInstance("HmacSHA256");
    mac.init(signingKey);

    byte[] rawHmac = mac.doFinal(message.getBytes("UTF-8"));
    String encodeBase64String = Base64.encodeBase64String(rawHmac);

  return encodeBase64String;
  
}

공통오류

HTTP 상태 코드로 리턴되고, Body정보로 전달한다.

파라미터 설명
resultCode 오류코드
resultMessage 오류상세 설명
오류코드 설명
E900 Path 파라미터 오류
E901 WORKPLACE [g] > Developers API 설정 On or Off
E902 Body 파라미터 오류
E903 기본설정정보를 NO 로 설정
E904 externalKey 유효성 오류
E1001 서버 내부 오류
E1003 사진파일 업로드 실패
{
    "resultCode": "E901", 
    "resultMessage": "Please check if API is used in the developer console."
}
HTTP 상태 코드 응답 메세지 설명
200 OK 일반적인 요청 성공
201 Created 리소스 생성 성공에 대한 응답 코드
400 Bad Request 일반적인 요청실패에 사용( 대체로 서버가 이해할 수 없는 형식의 요청이 왔을 때 응답하기 위해 사용)
500 Internal Server Error 일반적인 서버 에러에 대한 응답코드입니다. 4XX대의 에러코드가 클라이언트 측 에러를 나타내기 위해 사용된다면,
5XX대의 에러코드는 서버 측 에러를 나타내기 위해 사용

오퍼레이션

아쉬운 점이 있다면 이야기해 주세요.
0/5000
내용을 입력해 주세요
의견 보내기