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절에 유니크한 값인 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-api

Insert, Update, Delete와 같은 데이터 작업을 수행합니다. Id의 값에 따라 Insert(0), Update(양수), Delete(음수)로 구분합니다.

만약 Id값이 0보다 큰 양수라면 해당 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

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

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

php 사용예시

 

JavaScript 사용예시