API 응답에서 다수의 키 값들을 검증할 때 코드의 중복을 줄이는 것은 유지보수성을 향상시키고, 가독성을 높이는 데 중요합니다. 이를 위해 몇 가지 접근 방법을 사용할 수 있습니다.
검증 함수 사용
inline ad
공통된 검증 로직을 별도의 함수로 분리하여, 필요할 때마다 이 함수를 호출하는 방법입니다. 이 함수는 필수 키 목록과 함께 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('응답에서 필수 키가 누락되었습니다.'); }
참고문서