/api-rest-catalogo-usuarios

Importa dados de uma API externa para o banco de dados MySQL da aplicação que realiza um CRUD dos usuários e disponibiliza APIs no formato JSON.

Primary LanguagePHPMIT LicenseMIT

Instalação

$ git clone https://github.com/adevecchi/api-rest-catalogo-usuarios.git
$ cd api-rest-catalogo-usuarios
$ composer install

$ php -S localhost:8080 -t public

Configurando usuário de acesso para o MySQL

Acessar o arquivo config/mysql.ini

Seu conteúdo é mostrado abaixo:

db_host=localhost
db_name=dvq_mob
db_utf8=utf8
db_user=<seu_nome_de_usuario_aqui>
db_pass=<sua_senha_de_usuario_aqui>

Apenas deve ser alterado db_user e db_pass com os seus valores de acesso para o MySQL.

O usuário de acesso do MySQL deve ter permissão para criar novo Banco de Dados e Tabelas, que será utilizado para fazer a importação dos dados de uma API externa.

A aplicação vai gerenciar os dados importados para o MySQL com operações CRUD e disponibilizar uma API com três Endpoints.

Importando os dados da API externa:

Entre com a URL na barra de endereço do browser conforme mostrado abaixo:

localhost:8080/api/create/mysql/database

Isso vai ter como retorno a seguinte informação (Para usuário com as devidas permissões):

{
    "code": 200,
    "status": "OK"
}

Criação da API e Aplicação

A aplicação de catalogo de usuários vai realizar:

  1. Importar usuários e posts de uma API e guardar em um banco de dados MySQL
  2. Possuir uma tela para listar os usuários, com ações de adicionar, editar e excluir
  3. Também vai ter uma tela de detalhes de usuário, para listar os posts de cada um deles
  4. Ter APIs que retornem os dados do banco de dados no formato JSON
    • Todos os usuários: /users
    • Usuário específico: /users/{id}
    • Posts de um usuário: /users/{id}/posts

Fonte dos dados - APIs

Usuários: http://jsonplaceholder.typicode.com/users

Posts: http://jsonplaceholder.typicode.com/posts

Captura de tela

Tela de index.html

Tela de add.html

Tela de edit.html

Tela de delete

Tela de details.html

Tela de details.html

Endpoints

  • Todos usuários: GET /users

Endpoint

  • Usuário específico: GET /users/{id}

Endpoint

  • Posts de um usuário: GET /users/{id}/posts

Endpoint