apituto
1.0.0
api_teste.sql ) ، أستخدم التكوينات الموجودة داخل app/config/ لتكوينات قاعدة البيانات وللاستخدام السهل على إذن النموذج والموديلات ؛public/index.php (أو bootstrap التطبيق) ، واستبدال النموذج القياسي للتطبيق الذي أستخدمه التطبيق Micro() الذي يتيح تطبيق الأداء السريع ويسمح أيضًا باستخدام واجهات برمجة التطبيقات ؛ | يحصل | GET ($ 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 بيانات لتخزين جميع البيانات الموجودة في الاستعلام ، وأخيراً يجب علينا تدوين Array لإرسال شكل JSON . // 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]+} ، حيث نحدد اسمه متبوعًا بنوع البيانات التي يمكن أن تتلقاها ، في هذه الحالة التي تحد من البيانات فقط لبيانات عدد صحيح ، حتى نتمكن من تصفية استعلام PHQL الخاص بنا بحيث يتم إرجاع Array بيانات محددة واحدة فقط. /*
* 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 جديدًا لجعل إدخالنا ، حيث سيتلقى بيانات الاسم وإنشائها عبر Post .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]