apituto
1.0.0
api_teste.sql )를 사용하여 데이터베이스 구성에 대한 app/config/ 내에서 기존 구성을 사용하고 Model 및 ModelSManager 의 쉽게 사용 권한을 사용합니다.public/index.php (또는 응용 프로그램 부트 스트랩 ) 내에 있으며 표준 응용 프로그램 형식을 대체합니다. I Rapid Performance 애플리케이션을 가능하게하고 API 를 사용할 수있는 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();
Micro Application 과 함께 생성 된 modelsManager 사용하여 사용될 PHQL을 삽입하는 첫 번째 GET 으로 시작합니다. 해석하기 위해 생성 된 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]+} 사용하여 처리를 겪습니다. 여기서 우리는 이름을 결정한 다음 수신 할 수있는 데이터 유형을 결정합니다.이 경우 정수 데이터에 대해서만 데이터 만 제한하므로 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]