김서영

add apiReques.js/ request ETRI API and reslove response body

1 +require('dotenv').config();
2 +
3 +const rp = require("request-promise");
4 +
5 +// Api URL
6 +const URL = {
7 + "ETRI" : "http://aiopen.etri.re.kr:8000/",
8 +}
9 +
10 +// ETRI Api Request Format
11 +const apiRequestJsonFrame = {
12 + "request_id" : "reserved field",
13 + "access_key" : process.env.ETRI_API_KEY,
14 + "argument" : {}
15 +};
16 +
17 +let apiRequest = {};
18 +
19 +/**
20 + * @param {String} query 세부 url / 형식은 api사이트 참조
21 + * @param {Object} argument 필요한 argument / 형식은 api사이트 참조
22 + * @returns {Object} api사이트에서 정해진 형식의 응답을 받아옵니다.
23 + * @description 이 함수는 이미 정해진 url(etri api)+query의
24 + 경로로 argument와 함께 request를 보냅니다.
25 + 그 후 얻은 응답을 js object로 보내줍니다.
26 +*/
27 +apiRequest.ETRI = async ( query, argument ) => {
28 + return new Promise( ( resolve, reject ) => {
29 + let apiReqJson = apiRequestJsonFrame;
30 + apiReqJson.argument = argument;
31 + let apiReqOption = { uri : URL.ETRI + query, body : JSON.stringify( apiReqJson ) };
32 +
33 + rp.post( apiReqOption )
34 + .then( ( body ) => {
35 + body = JSON.parse( body );
36 + resolve( body );
37 + })
38 + })
39 +}
40 +
41 +module.exports = apiRequest;