프론트에서 GraphL쿼리 호출시 포멧

Kyle_Kim·2022년 11월 15일
0

KSMART

목록 보기
3/3

1. Query & parameter formate

스트링 값으로 입력 되야 하기에 더블쿼트를 붙인다.

Ex> "${jobType}"

jobType은 스트링 타입이기 때문에 더블쿼트가 붙어야 JS스트링 값에서 리턴될때 java스트링으로 인식된다.

1 - 1 하지만 boolean같은 값들은 더블쿼트가 필요 없기에 JS변수 인용기법 그대로 사용하면 됐다.

EX> searchCompareYn :${searchCompareYn}

   function searchAoiJob(){
            let param = `
                    jobLibraryParam:{
                        jobType : "${jobType}" 
                        machineId : null
                        lastModifier : null
                        packageName : null
                        partName : null
                        startDay : null
                        searchCompareYn :${searchCompareYn}
                }`;
            let machineType = ' machineType : null';
            let field = `
                      {
                         name
                         machineId
                      }
          `;
      



3. 쿼리 concat

ex>1
function makeQuery(apiName , param , field){
   let query = '';
   if(param != null){
       query = `{${apiName}(${param})${field}}`;
   } else {
       query = `{${apiName}${field}}`;
   }

   console.log(query);
   return query;
}

쿼리는 상황에 따라 param을 추가적으로 붙여 주면 된다.

query = `{aoiJobLibraryList(${param},${machineType})${field}}`;
console.log(query)
callEndPoint(query , setData, null);



3. 호출 프로토콜

function callEndPoint(query , callback , params){
    $.ajax({
        url: '/graphql',
        contentType: "application/json",
        type:'POST',
        data: JSON.stringify({ query : query}),
        success: function(result) {
            if(typeof params != 'undefined' && params != null){
                result.data.params = params;
            }
            callback( result.data ); # calls callback func
        }
    });
}
profile
Make Things Right

0개의 댓글