- PHP v8.
- GIT v2
- Composer v2.
- Banco de dados: MySql, SQLite, PostgreSQL, SQLServer.
Esse ‘software’ tem o intuito de fazer a conversão de moedas pré-cadastradas, é possível informar a quantidade também.
Para instalar e testar o projeto siga os passos a seguir:
Moeda | Código |
---|---|
BRL | Real Brasileiro |
USD | Dólar Americano |
ARS | Peso Argentino |
EUR | Euro |
GBP | Libra |
BTC | Bitcoin |
git clone git@github.com:SOSTheBlack/bildvitta.git
cd bildvitta
composer install
Execute o comando abaixo para criar o seu arquivo .env
.
cp .env.example .env
Após a criação do seu .env
edite as suas configurações de banco de dados para prosseguirmos ao próximo passo.
php artisan key:generate
php artisan migrate
Nesse momento está sendo criado a tabela que irá conter as moedas disponíveis para conversão.
php artisan db:seed
As moedas para conversão estão na tabela coin_conversions
.
php artisan serve
Para utilizar a API, segue esse cURL de exemplo. Atenção a porta que está sendo rodado o ‘software’ no seu sistema.
curl -L -X GET "http://127.0.0.1:8000/api/coins/conversions?coin_from=USD&coin_to=GBP&quantity=10" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Token: d812b49499b6b3e6b24a70cece02f2f7'
O endpoint da API é um GET e os paramatros deve ser enviado por query string.
Segue os parâmetros da nossa API.
Key | Obrigatório | Descrição |
---|---|---|
coin_from | SIM | Moeda de origen(De) |
coin_to | SIM | Modera de destino(Para) |
quantity | SIM | Quantidade de moedas a serem convertidas |
Key | Value | Obrigatório | Descrição |
---|---|---|---|
Token | config('services.api.token') | SIM | Quantidade de moedas a serem convertidas |
Accept | application/json | NÃO | Tipo de conteúdo enviado a API |
Content-Type | application/json | NÃO | Tipo de conteúdo retornado da API |
Exemplo de response segundo o cURL anexado acima.
{
"data": {
"coin_from": "USD",
"coin_to": "GBP",
"quantity": 10,
"price": 7.8
}
}
{
"message": "The given data was invalid.",
"errors": {
"quantity": [
"The quantity field is required."
],
"coin_from": [
"The coin from field is required."
],
"coin_to": [
"The coin to field is required."
]
}
}
Ausência do header Token
.
{
"message": "missing token, is has required"
}
Token inválido
{
"message": "invalid token"
}
Código | Mensagem |
---|---|
1001 | missing token, is has required. |
1002 | invalid token. |
Código | Mensagem |
---|---|
1001 | no results for model. |
Código | Mensagem |
---|---|
1001 | error when inserting database. |
Execute o comando abaixo:
php artisan test
Você deve visualizar algo semelhante a isso:
PASS Tests\Feature\Api\Coins\ConversionTest
✓ coin conversion with success
✓ coin conversion with success with data set #1
✓ coin conversion with success with data set #2
✓ coin conversion with success with data set #3
✓ coin conversion with success with data set #4
✓ coin conversion with success with data set #5
✓ coin conversion with success with data set #6
✓ coin conversion with success with data set #7
✓ coin conversion with success with data set #8
✓ coin conversion with success with data set #9
✓ coin conversion with success with data set #10
✓ has validation inputs
✓ has validation inputs with data set #1
✓ has validation inputs with data set #2
✓ has validation inputs with data set #3
✓ has validation inputs with data set #4
✓ has validation inputs with data set #5
✓ has validation inputs with data set #6
✓ if coin exists in database
✓ if coin exists in database with data set #1
✓ if coin exists in database with data set #2
✓ if coin exists in database with data set #3
✓ if coin exists in database with data set #4
✓ if coin exists in database with data set #5
✓ if coin exists in database with data set #6
✓ if coin exists in database with data set #7
✓ if coin exists in database with data set #8
✓ if coin exists in database with data set #9
✓ if coin exists in database with data set #10
✓ if coin exists in database with data set #11
✓ if coin exists in database with data set #12
✓ if coin exists in database with data set #13
✓ if coin exists in database with data set #14
✓ if coin exists in database with data set #15
✓ if coin exists in database with data set #16
✓ if coin exists in database with data set #17
✓ if coin exists in database with data set #18
✓ if coin exists in database with data set #19
✓ if coin exists in database with data set #20
✓ if coin exists in database with data set #21