Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iarleyibiapina/api_php_puro
O objetivo deste projeto é criar uma API utilizando PHP puro, um mini framework foi criado onde é possivel definir um controller, método e models e trabalhar com dados de uma forma um pouco dinâmica.
https://github.com/iarleyibiapina/api_php_puro
api api-rest estudos estudos-php framework mysql mysql-database php php8
Last synced: about 2 months ago
JSON representation
O objetivo deste projeto é criar uma API utilizando PHP puro, um mini framework foi criado onde é possivel definir um controller, método e models e trabalhar com dados de uma forma um pouco dinâmica.
- Host: GitHub
- URL: https://github.com/iarleyibiapina/api_php_puro
- Owner: iarleyibiapina
- Created: 2024-02-05T16:50:28.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-16T16:17:21.000Z (11 months ago)
- Last Synced: 2024-02-16T17:38:27.107Z (11 months ago)
- Topics: api, api-rest, estudos, estudos-php, framework, mysql, mysql-database, php, php8
- Language: PHP
- Homepage:
- Size: 35.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
Projeto feito com base [neste video](https://www.youtube.com/watch?v=GBE-H33xluE&lc=UgwPs05oxivbE6q4TTh4AaABAg&ab_channel=RafaelLeme)
> [!NOTE]
> O projeto pode ser configurado para ter uma url dinamica e mais proxima de um abiente de produção, ao invés do padrão `Localhost`. Porem decidi não implementar estas configurações e utilizar apenas a url 'amigavel' com htacces e com o fato de que a url exibida será a pasta do seu projeto.> Para executar este projeto Utilizei como ferramentas o XAMPP, Um Gerenciador de banco de dados, Visual Studio e Postman.
Utilizando VirtualHost por exemplo ficaria assim:
- `api.sistema.com.br`
- `api.sistema.com.br/noticias`
### Configurando a url
Para iniciar projeto foi configurado um host novo. Para localizar e adicionar é preciso usar este comando:
`'windows + r'`
pesquisar por:
`C:\Windows\System32\drivers\etc`
Abrir o arquivo 'hosts' no visual studio ou algum editor de texto.
No final do arquivo definir:`'127.0.0.1 api.sistema.com.br'`
Depois é preciso configurar um virtual host no xampp
em:(O caminho varia dependendo de onde o xampp estiver instalado)
`'C:\xampp\apache\conf\extra'`
Abrir o arquivo
`'httpd-vhosts.conf'`
Definindo um novo virtual host:
```
ServerAdmin [email protected]
DocumentRoot "C:\xampp\htdocs\PHP\Api_PHP_3"
ServerName api.sistema.com.br
ErrorLog "logs/api.sistema.com.br-error.log"
CustomLog "logs/api.sistema.com.br-access.log" common```
> Agora ao entrar e digitar o caminho do projeto em htdocs, por conta do .htaccess na raiz do projeto, será redirecionado para o index dentro da pasta public.
# Configurando o projeto (sem o uso do virtual host)
- Banco de dados
Há um arquivo .sql na raiz do projeto, nele contem o sql para criar a tabela do projeto ou:
Crie um banco de dados MySQL ou utilize um existente.
```
CREATE DATABASE teste;
``````
USE teste;
``````
CREATE TABLE tab_noticias (
id_noticia_tbn INT PRIMARY KEY NOT NULL,
nome_noticia_tbn VARCHAR(255),
conteudo_noticia_tbn VARCHAR(255)
);
```- Configure a .env do projeto
Faça uma cópia do arquivo .env.example para .env e configure a conxeção com o banco:
```
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASS=
DB_DB =[nome do seu banco]
```O arquivo possui uma env BASE_URL, precisa ser configurado com base no caminho do seu projeto;
```
BASE_URL="localhost/.../public/"
```Para finalizar configurar o caminho do arquivo .env em
`/public/index.php`,
para que as variaveis definidas sejam carregadas no projeto. Meu Exemplo:
`Dotenv::createUnsafeImmutable("c:\\xampp\htdocs\PHP\Api_PHP_3"); `
## Testando a API
Para testar utilize algum client, recomendo o POSTMAN
Raiz do projeto é '{caminho_seu_projeto_htdocs}/public/';
GET - Pegando todas as noticias
```
/noticias
```GET - Pegando uma noticia pelo ID
```
/noticias/1
```> Chaves para os inputs em POST e PUT
- nome_noticia_tbn
- conteudo_noticia_tbnPOST - Fazendo envio de dados de uma noticia
```
/noticias/1
```PUT - Atualizando dados de uma noticia
```
/noticias/1
```DELETE - Deletando uma noticia
```
/noticias/1
```