Skip to main content

PAP(pick-act-page) API 설명

PAP API

PAP(pick-act-page) API는 다보리 컴포저블 앱에서 개별 Table 단위의 데이터 처리를 위한 API 구조를 정의하는 방법입니다. 

이 API의 구조는 기본적으로 단일 데이터 추출(Pick), 실행(Action), 다수의 row 추출 (Page) 세 가지 api를 포함하고 있습니다.

 

 pick-api

WHERE절에

유니크한
    값인
  • PickId를 api포함시켜 (단일데이터 추출)
    • 개별 ID 값을 기반으로 한 개 또는 다수의 레코드를 추출하는 api입니다.

    php

  • 사용예시

  • $itemPick = $this->callApiService->callApi([
      'url' => 'item-pick',
      'data' => [
        'Page' => [
                     ['UpdatedMd5' => $updatedMd,]
        ],
      ],
      'headers' => [
      'GateToken' => $this->gateToken['main']
      ]
    ]);

    JavaScript 사용예시

    const response = await axios.post('/ajax/get-data', {
      url: 'item-pick',
      data: {
        Page: [
                { Id:  parseInt(window.User['SgroupId']) } 
        ]
      }
    });

    Act act-api

    (데이터 실행)
    • Insert, Update, Delete와 같은 데이터 작업을 수행합니다.

    •  
    • IDId의 값에 따라 Insert(0), Update(양수), Delete(음수)로 구분합니다.
    • 만약 ID값Id값이 0보다 큰 양수라면 해당 ID값Id값에 해당하는 데이터를 Update합니다.

    •  
    • Delete는 다른 필드 없이 ID 값만으로 처리할 수 있습니다.

     

  • php 사용예시

    
    // insert
    $itemAct = $this->callApiService->callApi([
                'url' => 'item-act',
                'data' => [
                    'Page' => [
                        [
                            'Id' => 0, // 0 : insert, 양수: update, 음수 : delete
                            'IgroupId' => 526,
                            'ItemCode' => Str::limit($linkproMd5, 21, ''),
                            'ItemSlug' => $linkproMd5,
                            'ItemName' => $scrap['ItemName'],
                            'SalesPrc' => (string)$scrap['SalesPrice'],
                        ]
                    ],
                ],
                'headers' => [
                    'GateToken' => $this->gateToken['main']
                ]
    
    // update
    $itemAct = $this->callApiService->callApi([
                'url' => 'item-act',
                'data' => [
                    'Page' => [
                        [
                            'Id' => 4, // 0 : insert, 양수: update, 음수 : delete
                            'IgroupId' => 526,
                            'ItemCode' => Str::limit($linkproMd5, 21, ''),
                            'ItemSlug' => $linkproMd5,
                            'ItemName' => $scrap['ItemName'],
                            'SalesPrc' => (string)$scrap['SalesPrice'],
                        ]
                    ],
                ],
                'headers' => [
                    'GateToken' => $this->gateToken['main']
                ]
    
                                              
    // delete
    $itemAct = $this->callApiService->callApi([
                'url' => 'item-act',
                'data' => [
                    'Page' => [
                        [ 'Id' => -4 ] // 0 : insert, 양수: update, 음수 : delete     
                    ],
                ],
                'headers' => [
                    'GateToken' => $this->gateToken['main']
                ]
    
    
    
    JavaScript 사용예시
    const response = await axios.post('/ajax/get-data', {
            url: 'item-act',
            data: {
              Id : 0,
              ItemCode: $(item_form).find('#item-code-txt').val(),
              IgroupId: Number($(item_form).find('#igroup-id-txt').data('id')),
              ItemName: $(item_form).find('#item-name-txt').val(),
              SubName: $(item_form).find('#sub-name-txt').val(),
              ItemSlug: $(item_form).find('#item-slug-txt').val(),
            }
    });
    
    const response = await axios.post('/ajax/get-data', {
            url: 'item-act',
            data: {
              Id : 3,
              ItemCode: $(item_form).find('#item-code-txt').val(),
              IgroupId: Number($(item_form).find('#igroup-id-txt').data('id')),
              ItemName: $(item_form).find('#item-name-txt').val(),
              SubName: $(item_form).find('#sub-name-txt').val(),
              ItemSlug: $(item_form).find('#item-slug-txt').val(),
            }
    });
    
    const response = await axios.post('/ajax/get-data', {
            url: 'item-act',
            data: {Id : -3}
    });

    Page api(페이지네이션)page-api

    • 하나의 SelectSELECT 쿼리로 테이블의 레코드를 2차원 리스트 형태로 가져옵니다.

    •  
    • QueryCnt,

      Query, Fields, Asc, Desc, Limit, Offset, ReturnJsonOffset 등의 파라미터를 통해 페이징과request할 data의 필터링을 설정합니다.

    •  
    • 특히 ReturnJson 필드는 페이지 갱신 시 이전 쿼리 조건값을 잃지 않도록 서버에 전달하고, Base64 인코딩을 통해 전달합니다.

*API 공용 Json Structure 정의

"PageVars":php {
사용예시

 "QueryCnt":

"string",//Response

JavaScript 사용예에만

유효한 값, Where 절에 걸리는 Row Count - Request 시에는 지정하지 않아도 됩니다.
  "Query": "string",//Query의  Where Clause의 내용과 같은 문법으로 지정 가능합니다. (And / Or 조건 지정 가능)
  "Fields": "string",// 가져올 필드를 지정합니다, 필드 자체를 뺄 수는 없지만, 해당값을 Empty 처리가 가능합니다. (지정하지 않으면 all)
  "Asc": "string",// ORDER BY  *** ASC  지정 가능합니다.
  "Desc": "int",// ORDER BY  *** DESC  지정 가능합니다.
  "Limit": "int",// 한번 페이징에서 가져오는 Row  갯수,  반드시 지정필요, 10개 Default
  "Offset": "int",// Where로 필터된 rows 중 가져오는 첫번째 레코드 레코드 옵셋 지정 가능
  "ReturnJson": "string",//일반적으로 필터링 하는 지정 조건 값을 서버로 보냈다가 받을 수 있습니다.
}