apiRequest.js 1.38 KB
// api key
require('dotenv').config();
try {
    if( process.env.TEST != "OKAY" ) {
        throw new Error( "키 오류 키파일을 확인하세요" );
    }
}
catch( err ) {
    throw new Error(err);
}
const rp = require("request-promise");

// Api URL
const URL = {
    "ETRI" : "http://aiopen.etri.re.kr:8000/",
}

// ETRI Api Request Format
const apiRequestJsonFrame = {
	"request_id" : "reserved field",
	"access_key" : process.env.ETRI_API_KEY,
	"argument" : {}   
};
            
let apiRequest = {};

/** 
 * @param {String} query 세부 url / 형식은 api사이트 참조
 * @param {Object} argument 필요한 argument / 형식은 api사이트 참조
 * @returns {Object} api사이트에서 정해진 형식의 응답을 받아옵니다. 
 * @description 이 함수는 이미 정해진 url(etri api)+query의
    경로로 argument와 함께 request를 보냅니다.
    그 후 얻은 응답을 js object로 보내줍니다.
*/
apiRequest.ETRI = async ( query, argument ) => {
    return new Promise( ( resolve, reject ) => { 
        let apiReqJson = apiRequestJsonFrame;
        apiReqJson.argument = argument;
        let apiReqOption = { uri : URL.ETRI + query, body : JSON.stringify( apiReqJson ) };
        
        rp.post( apiReqOption )
        .then( ( body ) => {
            body = JSON.parse( body );
            resolve( body );
        })   
    })  
}

module.exports = apiRequest;