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']) } ] } });
Actact-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} });
Pageapi(페이지네이션)page-api하나의
SelectSELECT 쿼리로 테이블의 레코드를 2차원 리스트 형태로 가져옵니다.QueryCnt,Query,
Fields,Asc, Desc, Limit,Offset, ReturnJsonOffset 등의 파라미터를 통해페이징과request할 data의 필터링을 설정합니다.특히 ReturnJson 필드는 페이지 갱신 시 이전 쿼리 조건값을 잃지 않도록 서버에 전달하고, Base64 인코딩을 통해 전달합니다.
*API 공용 Json Structure 정의
"PageVars":php {
사용예시
"QueryCnt":
JavaScript 사용예시에만