- กรณี rest api เราใช้เป็น site/subfolder ให้เราเพิ่มพาธ subfolder เข้าไปใน index.php ของ slim framework ด้วยเช่น
/** set path for app subdirectory */
$app->setBasePath('/subapi');
- สร้างไฟล์ method แยก myapi.php ให้วางไว้ใน app/myapi.php
- และใน index.php ของ root slim framework ให้เพิ่ม
// Register myapi
$myapis = require __DIR__ . '/app/myapis.php';
$myapis($app);
....
$app->get('/md5/{par1}', function(Request $request, Response $response, $args){
$par1 = $args['par1'];
$response->getBody()->write(md5($par1));
return $response;
});
....
...
$app->post('/md5', function (Request $request, Response $response, $args) {
$data = $request->getParsedBody();
$par1 = $data["par1"];
$response->getBody()->write(md5($par1));
return $response;
});
...
...
$app->post('/md5', function (Request $request, Response $response, $args) {
$data = $request->getParsedBody();
$par1 = $data["par1"];
$payload = json_encode(
array(
"result"=>md5($par1)
)
);
$response->getBody()->write($payload);
$content_type = "application/json"; // 'text/html'
$status = 200; // 500
return $response->withHeader('Content-Type', $content_type)->withStatus($status);
});
...
- การสร้าง db connection หลายตัวใน api site เดียวกันนี้ ให้เราแก้ไข app/settings.php
- และไฟล์ app/dependencies.php
- การเรียกใช้ db connection ของเราใน myapi.php
$db1 = $this->get(PDO::class);
$db2 = $this->get("db2");
$db3 = $this->get("db3");
- ตัวอย่างการเรียกใช้ connection
$par1 = "value1";
$par2 = "value2";
$sql = "select * from mytb where col1=:par1 && col2=:par2;";
$stmt = $db1->prepare($sql);
$stmt->bindValue(":par1", "%{$par1}%");
$stmt->bindParam(":par2", $par2);
$stmt->execute();
$row_count = $stmt->rowCount();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);