apituto
1.0.0
api_teste.sql )を使用して、データベース構成にapp/config/内の既存の構成を使用し、モデルとModelSMANAGERの許可を簡単に使用します。public/index.php (またはアプリケーションブートストラップ)内にあり、アプリケーションの標準形式を置き換えます。迅速なパフォーマンスアプリケーションを有効にし、 APIの使用を可能にするMicro()アプリケーションを使用します。 | 得る | get($ id) | 役職 | 置く | 消去 | |
|---|---|---|---|---|---|
| データ | すべてを返します | 1つを返します | 新しいデータを挿入します | 既存のデータを変更します | 既存のデータを削除します |
プロジェクトを作成した後、次の手順に従う必要があります。
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();
Micro Applicationとともに作成されたmodelsManager使用して、作成した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変数を受信します。受信された変数は{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を作成する必要があります。ここでは、名前データを受信し、 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]