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 사용예시
$this->callApiService->callApi([
'url' => 'app-guest-page',
'data' => [
'PageVars' => [
'Query' => "app_name = '$appName' and is_on_use = 1",
'Limit' => 1,
]
],
'headers' => [
'GateToken' => $this->gateToken['main']
]
JavaScript 사용예시
const response = await axios.post('/ajax/get-data', {
url: "item-page",
data: data
});