[javscript]API 응답에서 키 값들을 검증하는 방법

0
593
javascript
javascript

API 응답에서 다수의 키 값들을 검증할 때 코드의 중복을 줄이는 것은 유지보수성을 향상시키고, 가독성을 높이는 데 중요합니다. 이를 위해 몇 가지 접근 방법을 사용할 수 있습니다.

검증 함수 사용

공통된 검증 로직을 별도의 함수로 분리하여, 필요할 때마다 이 함수를 호출하는 방법입니다. 이 함수는 필수 키 목록과 함께 API 응답 객체를 인자로 받아, 모든 필수 키가 응답 객체에 존재하는지 검사할 수 있습니다.

function validateApiResponseKeys(responseObject, requiredKeys) {
  return requiredKeys.every(key => key in responseObject);
}

const apiResponse = { key1: 'value1', key2: 'value2' };
const requiredKeys = ['key1', 'key2', 'key3'];

const isValid = validateApiResponseKeys(apiResponse, requiredKeys);
if (!isValid) {
  console.log('응답에서 필수 키가 누락되었습니다.');
}

고차 함수 사용

검증 로직을 추상화하여 고차 함수(Higher-order function)를 만드는 방법입니다. 이 함수는 필수 키 목록을 인자로 받고, 검증 함수를 반환합니다. 반환된 검증 함수는 API 응답 객체를 받아 검증을 수행합니다.

const createResponseValidator = (requiredKeys) => (responseObject) => 
  requiredKeys.every(key => key in responseObject);

const validateApiResponse = createResponseValidator(['key1', 'key2', 'key3']);
const apiResponse = { key1: 'value1', key2: 'value2' };

if (!validateApiResponse(apiResponse)) {
  console.log('응답에서 필수 키가 누락되었습니다.');
}

Lodash _.has 함수 사용

Lodash와 같은 유틸리티 라이브러리를 사용하여 객체의 키를 검증하는 방법입니다. Lodash의 _.has 함수 등을 사용하면 간결하게 필수 키의 존재 여부를 검사할 수 있습니다.

const apiResponse = { key1: 'value1', key2: 'value2' };
const requiredKeys = ['key1', 'key2', 'key3'];

const isValid = requiredKeys.every(key => _.has(apiResponse, key));
if (!isValid) {
  console.log('응답에서 필수 키가 누락되었습니다.');
}

참고문서