apituto
1.0.0
api_teste.sql ) ฉันใช้การกำหนดค่าที่มีอยู่ภายใน app/config/ สำหรับการกำหนดค่าฐานข้อมูลpublic/index.php (หรือแอปพลิเคชัน bootstrap ) แทนที่รูปแบบมาตรฐานของแอปพลิเคชันที่ฉันใช้แอปพลิเคชัน Micro() ที่เปิดใช้งานแอปพลิเคชันประสิทธิภาพที่รวดเร็วและยังช่วยให้สามารถใช้ APIs ได้ | รับ | รับ ($ id) | โพสต์ | ใส่ | ลบ | |
|---|---|---|---|---|---|
| ข้อมูล | ส่งคืนทั้งหมด | ส่งคืนหนึ่ง | แทรกข้อมูลใหม่ | การเปลี่ยนแปลงข้อมูลที่มีอยู่ | ลบข้อมูลที่มีอยู่ |
หลังจากสร้างโครงการเราต้องทำตามขั้นตอนต่อไปนี้:
public/index.php ที่สำคัญ use PhalconMvcMicro; และอ้างอิงแอปพลิเคชันเป็นแอปพลิเคชันไมโคร, $app = new Micro($di); -app/config/config.php ;index.php เราควรใช้โครงกระดูกการพัฒนาต่อไปนี้: $app = new Micro($di);
// Utiliza a API e através do método GET, RETORNA TODOS OS DADOS.
$app->get(
"/api/dados",
function () use ($app) {
}
);
/*
* Utiliza a API e através do método GET, RETORNA APENAS UM DADO.
* Nota: Ele receberá como GET um ID que terá um tratamento através do ':[0-9]+'
* permitindo assim que o mesmo seja somente do tipo INTEIRO.
*/
$app->get(
"/api/dados/{id:[0-9]+}",
function ($id) use ($app) {
}
);
// Utiliza a API e através do método POST, INSERE UM NOVO DADO.
$app->post(
"/api/dados",
function () use ($app) {
}
);
// Utiliza a API e através do método PUT, ALTERA UM DADO EXISTENTE respeitando o tratamento do ID.
$app->put(
"/api/dados/{id:[0-9]+}",
function ($id) use ($app) {
}
);
// Utiliza a API e através do método DELETE, REMOVE UM DADO EXISTENTE respeitando o tratamento do ID.
$app->delete(
"/api/dados/{id:[0-9]+}",
function () {
}
);
$app->handle();
modelsManager ที่ถูกสร้างขึ้นพร้อมกับ Micro Application เราต้องใช้ PHQL ที่สร้างขึ้นเพื่อตีความหลังจากส่งคืนข้อมูลเราจะใช้ Array ข้อมูลเพื่อจัดเก็บข้อมูลทั้งหมดที่พบใน JSON และในที่สุดเราจะต้องประมวลผล Array ของเรา // Utiliza a API e através do método GET, RETORNA TODOS OS DADOS.
$app->get(
"/api/dados",
function () use ($app) {
$phql = "SELECT * FROM dados";
$dados = $app->modelsManager->executeQuery($phql);
$data = [];
foreach($dados as $dado){
$data[] = [
'id' => $dado->id,
'nome' => $dado->nome,
'criado' => $dado->criado
];
}
echo json_encode($data);
}
);
$id ที่จะถูกส่งผ่านไปยัง URL API ตัวแปรที่ได้รับผ่านการรักษาโดยใช้ {id:[0-9]+} โดยที่เรากำหนดชื่อตามด้วยประเภทของข้อมูลที่สามารถรับได้ในกรณีนี้ จำกัด ข้อมูลสำหรับข้อมูลจำนวนเต็มเท่านั้นดังนั้นเราจึงสามารถกรอง Array PHQL ของเราเพื่อส่งคืนข้อมูลเฉพาะ /*
* Utiliza a API e através do método GET, RETORNA APENAS UM DADO.
* Nota: Ele receberá como GET um ID que terá um tratamento através do ':[0-9]+'
* permitindo assim que o mesmo seja somente do tipo INTEIRO.
*/
$app->get(
"/api/dados/{id:[0-9]+}",
function ($id) use ($app) {
$phql = "SELECT * FROM dados WHERE id = ".$id;
$dados = $app->modelsManager->executeQuery($phql);
$data = [];
foreach($dados as $dado){
$data[] = [
'id' => $dado->id,
'nome' => $dado->nome,
'criado' => $dado->criado
];
}
echo json_encode($data);
}
);
RESPONSE() เพื่อส่งสถานะแอปพลิเคชันและส่งคืนข้อมูลที่บันทึกไว้ สำหรับสิ่งนี้เราต้องสร้าง Array ใหม่เพื่อทำการแทรกของเราซึ่งจะได้รับข้อมูล ชื่อ และ สร้าง ผ่าน โพสต์Response() ซึ่งช่วยให้เราสามารถส่งรหัสสถานะ (เช่น 201, 404, 500, 401, 409 )JSON ที่ผ่านสถานะของเราและข้อมูลที่ส่งคืนจากโมเดลของเราArray และส่งคำตอบผ่านเนื้อหา JSON โดยส่งผ่านสถานะและข้อผิดพลาดทั้งหมดที่พบ // Utiliza a API e através do método POST, INSERE UM NOVO DADO.
$app->post(
"/api/dados",
function () use ($app) {
$insert = [
'nome' => $app->request->getPost('nome'),
'criado' => ( ($app->request->getPost('criado')) ? $app->request->getPost('criado') : date('Y-m-d H:i:s') )
];
$phql = "INSERT INTO dados (nome, criado) VALUES ('".$insert['nome']."', '".$insert['criado']."')";
echo $phql;
$status = $app->modelsManager->executeQuery($phql);
// cria response
$response = new Response();
if($status->success() === true){
$response->setStatusCode(201, "Criado");
$dados = Dados::findFirstBynome($insert['nome']);
$response->setJsonContent(
[
'status' => "ok",
'data' => $dados
]
);
} else {
$response->setStatusCode(409, "Conflito");
$erros = [];
foreach ($status->getMessages() as $msg){
$erros[] = $msg->getMessage();
}
$response->setJsonContent(
[
'status' => "Erro",
'messages' => $erros
]
);
}
return $response;
}
);
$id เพื่อใช้ในการแก้ไขข้อมูลเฉพาะและโดยการส่งข้อความความสำเร็จของเราเราจะไม่ส่งข้อมูลที่เปลี่ยนแปลงและข้อความสถานะเท่านั้น // Utiliza a API e através do método PUT, ALTERA UM DADO EXISTENTE respeitando o tratamento do ID.
$app->put(
"/api/dados/{id:[0-9]+}",
function ($id) use ($app) {
$update = [
'id' => $id,
'nome' => $app->request->getPut('nome'),
'criado' => $app->request->getPut('criado')
];
$phql = "UPDATE dados.dados SET dados.nome = '".$update['nome']."', dados.criado = '".$update['criado']."' WHERE dados.id = ".$id;
$status = $app->modelsManager->executeQuery($phql);
// cria response
$response = new Response();
if($status->success() === true){
$response->setStatusCode(201, "Criado");
$dados = $dados = Dados::findFirst($update['id']);
$response->setJsonContent(
[
'status' => "ok",
'data' => $dados
]
);
} else {
$response->setStatusCode(409, "Conflito");
$erros = [];
foreach ($status->getMessages() as $msg){
$erros[] = $msg->getMessage();
}
$response->setJsonContent(
[
'status' => "Erro",
'messages' => $erros
]
);
}
return $response;
}
);
// Utiliza a API e através do método DELETE, REMOVE UM DADO EXISTENTE respeitando o tratamento do ID.
$app->delete(
"/api/dados/{id:[0-9]+}",
function () {
$phql = "DELETE FROM dados.dados WHERE dados.id = ".$id;
$status = $app->modelsManager->executeQuery($phql);
// cria response
$response = new Response();
if($status->success() === true){
$response->setJsonContent(
[
'status' => "ok"
]
);
} else {
$response->setStatusCode(409, "Conflito");
$erros = [];
foreach ($status->getMessages() as $msg){
$erros[] = $msg->getMessage();
}
$response->setJsonContent(
[
'status' => "Erro",
'messages' => $erros
]
);
}
return $response;
}
);
http://localhost/NOME_DO_PROJETO/api/NOME_DA_TABELA .htaccess ของคุณอยู่ที่รูทของโครงการเป็น: RewriteRule ^$ NOME_DO_MICRO_APP/api/ [L]
RewriteRule (.*) NOME_DO_MICRO_APP/api/$1 [L]