Skip to content

Construção de uma API RESTful completa em PHP puro (sem frameworks). Implementa CRUD usando PDO/SQLite e roteamento baseado em métodos HTTP (GET, POST, PUT, DELETE).

License

Notifications You must be signed in to change notification settings

NinoMiquelino/php-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👨‍💻 Autor


Onivaldo Miquelino
@ninomiquelino

🌐 PHP Pure RESTful API Client (PDO & HTTP Methods)

Made with PHP Frontend JavaScript TailwindCSS License MIT Status Stable Version 1.0.0 GitHub stars GitHub forks GitHub issues

Este projeto é um passo fundamental para entender a arquitetura REST. Ele foca na criação de uma API backend limpa e sem frameworks, gerenciando recursos (livros) através dos verbos HTTP padrões (GET, POST, PUT, DELETE).


🚀 Arquitetura REST e Recursos

  • Roteamento Manual: O arquivo src/api.php atua como um roteador que analisa o método HTTP ($_SERVER['REQUEST_METHOD']) e o parâmetro da URL ($_GET['id']) para determinar qual ação CRUD deve ser executada.
  • Dados JSON: A API recebe (POST, PUT) e envia (GET, POST, PUT) dados exclusivamente no formato JSON, usando file_get_contents('php://input') para ler o corpo da requisição.
  • Códigos de Status: Utiliza códigos de status HTTP padrão (e.g., 200 OK, 201 Created, 204 No Content, 400 Bad Request, 404 Not Found) para indicar o resultado da operação.
  • POO com PDO: As classes Database e BookController isolam a lógica de conexão e interação com o banco de dados SQLite.

🧠 Tecnologias utilizadas

  • Backend: PHP 7.4+ (POO, Headers HTTP, Manipulação de JSON).
  • Banco de Dados: SQLite (via PDO) para persistência.
  • Frontend/Teste: JavaScript Vanilla (fetch API) para simular um cliente consumindo a API.

🧩 Estrutura do Projeto

php-rest-api/
├── index.html
├── Database.php
├── BookController.php
├── api.php
├── README.md
├── .gitignore
└── books.sqlite

⚙️ Configuração e Instalação

Pré-requisitos

  1. Um ambiente de servidor web com PHP.
  2. Extensão PDO SQLite habilitada.
  3. Permissão de escrita na pasta src/ para a criação do arquivo books.sqlite.

Execução

  1. Crie a estrutura de pastas.

  2. Execute o servidor embutido do PHP (a partir da raiz do projeto):

    php -S localhost:8001
  3. Acesse o painel de testes: http://localhost:8001/public/index.html.


📝 Teste da API

Use o painel de testes (index.html) e o Console do Desenvolvedor (F12) para validar cada operação:

Método URL Ação Expectativa
GET /src/api.php Lista todos. Retorna 200 OK e um array de livros.
POST /src/api.php Cria um novo livro. Retorna 201 Created e o objeto do livro criado.
GET /src/api.php?id=X Busca um único livro. Retorna 200 OK ou 404 Not Found.
PUT /src/api.php?id=X Atualiza campos. Retorna 200 OK e o objeto atualizado.
DELETE /src/api.php?id=X Exclui o recurso. Retorna 204 No Content (corpo da resposta vazio).

🤝 Contribuições

Contribuições são sempre bem-vindas!
Sinta-se à vontade para abrir uma issue com sugestões ou enviar um pull request com melhorias.


💬 Contato

📧 Entre em contato pelo LinkedIn
💻 Desenvolvido por Onivaldo Miquelino


About

Construção de uma API RESTful completa em PHP puro (sem frameworks). Implementa CRUD usando PDO/SQLite e roteamento baseado em métodos HTTP (GET, POST, PUT, DELETE).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published