Esta api tem como proposta testar uma arquitetura desacoplada usando os conceitos de Dependency Injection, SOLID e DRY.
Por este motivo foi usado o mínimo de framework, afim de manter uma estrutura flexível e que facilmente pode adaptar as interfaces de inplementações que conversam com a camada de domínio(Negócio).
Esta estrutura não parece tão produtiva noinício quanto usar uma framework como o Laravel que prototipa rapidamente, porém é vantajosa a medida que o projeto avança. O ganho e produtividade é exponencial. Sem falar que dentro de um projeto de equipe, tendo progamadores juniores ou seniors é mais fácil entender a implementação e manter um padrão.
-
Languagem: PHP Bibliotecas: - PHPSpec - Teste
- Phinx - ORM
- Slim - Middleware - PSR-7 - HTTP Router
- PHP-DI - Dependency Injection Containers
- Medoo - Query Abstraction
- Clone ou baixe este repositório
- Se assegure de ter o composer instalado em sua máquina e o docker-compose
- Use os comendos para subir o server local:
$ docker-compose up -d
$ docker-compose down -v
- Para facilitar o desenvolvimento, é recomendável usar o vscode com a extensão do docker.
- Assim que levantar os serviços com docker-compose, irá parecer a lista dos containers no vscode.
- Clique com o botão direito em 'Atach bash'
- Pronto!
- Agora é só rodar
composer update
e rodar as migrations comvendor\bin\phinx migrate
- Status:
200
{"api":"payment-api","version":"0.1 Beta","timestamp":1600966072}
Create a new user payment.
?name=Relâmpago Marquinhos
// The name of the customer or merchant?email=rapidinho@example.com
// Email is unique?cpf=cpf
// If for customer or merchant?email=123456789
// Is only for merchant?password=123password
// Is encrypted?confirm_password=123password
// Is encrypted ===- Status:
200
Successfulcreated: {
"body": {
"name": "Relampago Marquinhos",
"email": "rapidinho@gmail.com",
"cpf": "1235123232323",
"cnpj": "1234533323233",
"password": "123",
"password_confirmation": "123"
}
}
Create a new payment.
?value=100.00
//The only information exposed to aplication?payer=4
// Secret key for user only see the information about your account?payee=5
// Secret key for user only see the information about your account ===- Status:
200
O projeto ainda está em desenvolvimento e as próximas atualizações serão voltadas nas seguintes tarefas:
- Autenticação
- Inplementação de controle de permissões
- Swagger
- Enxugara camada de data e presentation