Backend HTTP – Criando uma simples API REST com APACHE e PHP

Redirecionando as Requisições

Com as classes de auxílio criadas, criaremos um dos principais arquivos, que receberá as requisições, por convenção, utilizaremos o próprio index.php, porém, devido à tecnicas que utilizaremos mais pra frente, o nome deste arquivo é indiferente.

Criaremos o arquivo index.php com o seguinte conteúdo:

O que este arquivo faz é simples:

  1. Inclui os arquivos de configuração.
  2. Faz com que QUALQUER CLASSE criada em QUALQUER ARQUIVO dentro do diretório classes (ou qualquer outra pasta no include_path) seja importada automaticamente, sem a necessidade de utilizar o require.
  3. Cria o roteador e resolve a requisição.

Observe que a classe de roteamento utiliza a tabela de roteamento do arquivo _global_config.php e já realiza a chamada do método definido. O método pode estar definido dentro de qualquer arquivo no diretório classes, uma vez que o spl_autoload_register fará a busca da classe em que ele está definido.

Por padrão, sabemos que o Apache irá resolver a URI da requisição, buscando um arquivo com nome correspondente dentro do diretório do VirtualHost. Iremos substituir este comportamento utilizando o mod_rewrite, para isso, criaremos o arquivo .htaccess dentro da pasta raiz com o seguinte conteúdo:

 

A adição desse arquivo irá adicionar estas configurações à seu VirtualHost e fará com que TODAS as requisições sejam redirecionadas internamente para o arquivo index.php, que irá trata-lo através da classe Router e chamar o método adequado.

Caso o VirtualHost não esteja configurado com AllowOverride All, o leitor tem duas opções:

  1. Adicionar estas linhas de configuração diretamente nas configurações do VirtualHost (geralmente em /etc/apache2/sites-available/<site>.conf)
  2. Permitir que o arquivo .htaccess sobrescreva, utilizando:

 

Se tudo estiver devidamente configurado, todas as requisições para o site serão redirecionadas para o arquivo index.php e as resoluções serão feitas corretamente.

 

Comentários