apituto
1.0.0
api_teste.sql ), saya menggunakan konfigurasi yang ada dalam konfigurasi app/config/ for Database dan untuk memudahkan izin Model dan ModelSmanager ;public/index.php (atau bootstrap aplikasi), mengganti bentuk standar aplikasi saya menggunakan aplikasi Micro() yang memungkinkan aplikasi kinerja cepat dan juga memungkinkan penggunaan API ; | Mendapatkan | Dapatkan ($ ID) | Pos | Meletakkan | Menghapus | |
|---|---|---|---|---|---|
| DATA | Mengembalikan semua | Mengembalikan satu | Masukkan data baru | Mengubah data yang ada | Menghapus data yang ada |
Setelah membuat proyek, kita harus mengikuti langkah -langkah berikut:
public/index.php use PhalconMvcMicro; dan mereferensikan aplikasi sebagai aplikasi mikro, $app = new Micro($di); ;app/config/config.php ;index.php kita harus menggunakan kerangka pengembangan berikut: $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 yang dibuat bersama dengan Micro Application kami harus menggunakan PHQL yang dibuat untuk ditafsirkan, setelah data dikembalikan kami akan menggunakan Array data untuk menyimpan semua data yang ditemukan dalam kueri dan akhirnya kami harus mengkodifikasi Array kami untuk mengirim formulir 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 yang akan diteruskan ke URL API . Variabel yang diterima menjalani perawatan menggunakan {id:[0-9]+} , di mana kami menentukan namanya diikuti oleh jenis data yang dapat diterima, dalam hal ini membatasi data hanya untuk data integer, sehingga kami dapat memfilter kueri PHQL kami sehingga hanya mengembalikan satu Array data tertentu. /*
* 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() untuk mengirim status aplikasi dan juga mengembalikan data yang disimpan. Untuk ini kita harus membuat Array baru untuk membuat penyisipan kita, di mana ia akan menerima data nama dan dibuat melalui pos .Response() , yang memungkinkan kami untuk mengirim kode status (seperti 201, 404, 500, 401, 409 ).JSON yang meneruskan status kami dan data yang dikembalikan dari model kami.Array dan mengirim jawaban melalui konten JSON dengan memberikan status kami dan semua kesalahan yang ditemukan. // 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 untuk digunakan untuk memodifikasi data tertentu dan dengan mengirim pesan keberhasilan kami, kami tidak akan mengirim data yang diubah, dan hanya pesan status yang dikirim. // 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 Anda yang terletak di root proyek menjadi: RewriteRule ^$ NOME_DO_MICRO_APP/api/ [L]
RewriteRule (.*) NOME_DO_MICRO_APP/api/$1 [L]