apituto
1.0.0
api_teste.sql ), я использую существующие конфигурации в app/config/ для конфигураций базы данных и для легкого использования разрешения модели и Models Manager ;public/index.php (или Bootstrap Application), заменяя стандартную форму приложения. Я использую приложение Micro() , которое обеспечивает быстрое применение производительности, а также позволяет использовать API ; | Получать | Получить ($ 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 . Полученная переменная подвергается обработке с использованием {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 , чтобы сделать нашу вставку, где он будет получать данные имени и создан через пост .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]