Criando Web Services com manutenção de estado em PHP » CSM
Nesse exercício você irá criar um Web Service usando a tecnologia SOAP (xml) que realize as quatro operações de um banco de dados (CRUD – Create, Read, Update e Delete). Esse Web Service irá distinguir qual operação realizar através de parâmetros passados via URL (GET) ou no corpo da sua requisição (POST).
O seu Web Service irá fornecer um serviço de manipulação de clientes de um sistema. Cada cliente deverá conter: id, nome completo, e-mail, senha, cargo, salário, CPF, RG, atribuições, data de início na empresa, data de nascimento. Uma parte importante do Web Service é a segurança, já que existem soluções prontas para solucionar o problema da segurança, como por exemplo o OAuth2.0.
No entanto, nesse exercício você irá implementar uma lógica própria apenas para suprir as necessidades de segurança do seu Web Service. Para que o exercício esteja completo você deverá seguir uma tabela de teste. Os testes deverão ser feitos em seu Web Service e todos deverão ser satisfeitos.
ID Descrição do requisito Estado
1 O sistema deve receber um parâmetro "show" e quando ele for igual a "all" todos os clientes deverão ser exibidos. –
2 O sistema deverá exibir os dados de um cliente específico quando for recebido um número de ID válido. –
3 O sistema não deverá mostrar senha, salário, CPF, RG quando solicitado sem uma autenticação de desenvolvedor. –
4 O sistema deverá prover uma forma de inserção de um novo cliente. –
5 A inserção deverá verificar se o CPF é único na base de dados. –
6 A inserção só poderá acontecer caso seja feita por um desenvolvedor autorizado. –
7 O sistema deve permitir que seja feito a atualização de dados de um cliente. –
8 A atualização só poderá acontecer por um desenvolvedor autorizado. –
9 A remoção de um usuário deverá acontecer somente por um administrador do sistema. –
10 A exclusão deverá ser apenas lógica. Os dados não são realmente excluídos do sistema, mas deve existir uma forma de sinalizar que esses dados foram excluídos. –
Versão 01 – O sistema deve ser implementado usando um JSON como base de dados.
Versão 02 – O sistema deve ser implementado usando um banco de dados relacional ou Orientado a objetos como Base de dados (mysql, postgres, mongodb, mariadb etc.)