Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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_tbn

POST - Fazendo envio de dados de uma noticia

```
/noticias/1
```

PUT - Atualizando dados de uma noticia

```
/noticias/1
```

DELETE - Deletando uma noticia

```
/noticias/1
```