도메인 API v6

목차

1. 개요

2. 사용방법

    2-1. 도메인 레코드 정보 - GET

    2-2. 도메인 레코드 생성 - POST

    2-3. 도메인 레코드 수정 - PATCH

    2-4. 도메인 레코드 삭제 - DELETE

3. 응답 및 오류



1. 개요


도메인 API v6 를 사용하여 사용중인 도메인의 정보 확인, 레코드 생성 수정 및 삭제가 가능합니다.



2. 사용방법


v6 API 는 UUID 형식의 API Key 를 http 헤더 x-api-key 에 넣어주셔야 사용이 가능합니다.

로그인 후 https://api.lrl.kr 에서 발급하실 수 있습니다.



2-1. 레코드 정보 ( GET )

요청 URL: https://api.lrl.kr/v6/domain/{조회할 레코드}

데이터 타입: JSON

메소드: GET


예시로 생성된 example.64bit.kr 라는 도메인의 정보를 확인해보겠습니다.

아래는 자바스크립트 코드입니다. 크롬의 개발자 모드 -> 콘솔 창 에서 빠르게 테스트 가능합니다.

async function getInfo(record, key) {
  const response = await fetch(`https://api.lrl.kr/v6/domain/${record}`, {
    method: "GET",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": key
    },
    body: undefined
  });
  return response.json();
}


작성한 함수는 아래와 같이 실행 가능합니다.

await getInfo("example.64bit.kr", "발급받은 API Key");


실행된 함수는 아래와 같은 JSON 값을 불러옵니다.


type: 레코드 타입

data: 레코드 데이터 ( ip, 내용 등등 )

date: 레코드 생성일

{type: 'A', data: '1.1.1.1', date: '2024-12-22T16:37:00.000Z'}



2-2. 레코드 생성 ( POST )

요청 URL: https://api.lrl.kr/v6/domain 

데이터 타입: JSON

메소드: POST


예시로 A타입, 1.1.1.1 주소를 가진 example.64bit.kr 주소를 생성시켜보겠습니다.

아래는 자바스크립트 코드입니다. 크롬의 개발자 모드 -> 콘솔 창 에서 빠르게 테스트 가능합니다.


record: 생성할 레코드

type: 생성할 레코드 타입 ( A, AAAA, CNAME, TXT, SRV 등등 )

data: 생성할 레코드 데이터

async function create(record, type, data, key) {
  const response = await fetch(`https://api.lrl.kr/v6/domain`, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": key
    },
    body: JSON.stringify({record: record, type: type, data: data}),
  });
  return response.json();
}


위에서 작성한 함수는 아래와 같이 실행합니다.

await create("example.64bit.kr", "A", "1.1.1.1", "발급받은 API Key");

실행된 함수는 아래와 같은 결과를 출력합니다.
{"result": true}


※ 주의사항 ※

record 는 https://d.lrl.kr 에서 등록된 도메인만 사용 가능합니다.

등록된 도메인은 https://d.lrl.kr 에서 확인하실 수 있습니다.



2-3. 레코드 수정 ( PATCH )

요청 URL: https://api.lrl.kr/v6/domain/{수정할 레코드}

데이터 타입: JSON

메소드: PATCH


예시로 example.64bit.kr 의 데이터를 1.1.1.1 에서 1.0.0.1 로 수정해보겠습니다.

레코드 타입 또한 변경이 가능합니다.


아래는 자바스크립트 코드입니다. 크롬의 개발자 모드 -> 콘솔 창 에서 빠르게 테스트 가능합니다.

async function edit(record, data = undefined, type = undefined, key) {
  const response = await fetch(`https://api.lrl.kr/v6/domain/${record}`, {
    method: "PATCH",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": key
    },
    body: JSON.stringify({type: type, data: data}),
  });
  return response.json();
}


위에서 작성된 함수는 아래와 같이 사용합니다.

await edit("example.64bit.kr", "1.0.0.1", "A", "발급받은 API Key");

실행된 함수는 아래와 같은 결과를 출력합니다.

{result: true}


위 함수에서는 데이터와 레코드 타입을 모두 입력하지만 type 만 변경하거나 data 만 변경할 수 있습니다.



2-4. 레코드 삭제 ( DELETE )

요청 URL: https://api.lrl.kr/v6/domain/{삭제할 레코드}

데이터 타입: JSON

메소드: DELETE


예시로 위에 생성했던 example.64bit.kr 도메인을 삭제해보겠습니다.

아래는 자바스크립트 코드입니다. 크롬의 개발자 모드 -> 콘솔 창 에서 빠르게 테스트 가능합니다.

async function remove(record, key) {
  const response = await fetch(`https://api.lrl.kr/v6/domain/${record}`, {
    method: "DELETE",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": key
    },
    body: undefined,
  });
  return response.json();
}


위에서 작성된 함수는 아래와 같이 사용합니다.

await remove("example.64bit.kr", "발급받은 API Key");

실행된 함수는 아래와 같은 결과를 출력합니다.

{result: true}



3. 응답 및 오류


오류는 HTTP 응답코드 와

자세한 오류 내용을 담은  {"message": "메시지"} 형태의 오류 메시지가 제공됩니다.



API Key 관련 오류

메시지HTTP 응답코드설명
ERR_NO_KEY401HTTP 헤더 x-api-key 에 key 값이 필요합니다.
ERR_INVALID_KEY400올바르지 않은 key값입니다.
ERR_BANNED_KEY403차단된 api key 입니다.
ERR_TOO_MANY_AUTH_FAIL429너무 많은 인증 실패로 일정 시간 이용이 불가능합니다.
ERR_TOO_MANY_REQUESTS429너무 많은 요청으로 일정 시간 후 다시 시도해주세요.
ERR_UNDEFINED500알 수 없는 오류입니다. 


API 응답 오류

메시지HTTP 응답코드설명
ERR_NO_RECORD400레코드 이름을 입력해주세요.
ERR_INVALID_RECORD400레코드 형식이 올바르지 않습니다.
ERR_RECORD_TOO_LONG400레코드 길이가 너무 깁니다.
ERR_RECORD_TOO_SHORT400레코드 길이가 너무 짧습니다.
ERR_NO_RECORD_TYPE400레코드 타입을 입력해주세요.
ERR_INVALID_RECORD_TYPE400레코드 타입이 올바르지 않습니다.
ERR_NO_RECORD_DATA400레코드 데이터가 없습니다.
ERR_INVALID_RECORD_DATA400레코드 데이터가 올바르지 않습니다.
ERR_RECORD_DATA_TOO_LONG400레코드 데이터가 너무 깁니다.
ERR_INVALID_IPv4_DATA400레코드 IPv4 데이터를 올바르게 입력해주세요.
ERR_INVALID_IPv6_DATA400레코드 IPv6 데이터를 올바르게 입력해주세요.
ERR_INVALID_SRV_DATA400레코드 SRV 데이터를 올바르게 입력해주세요.
ERR_RECORD_NOT_FOUND404레코드를 찾을 수 없습니다.
ERR_ALREADY_EXISTS409이미 존재하는 레코드입니다.
ERR_NO_PERMISSION403권한이 없습니다.
ERR_UNDEINED500알 수 없는 오류입니다.