- 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 [email protected]:SOSTheBlack/bildvitta.gitcd bildvittacomposer installExecute o comando abaixo para criar o seu arquivo .env.
cp .env.example .envApó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:generatephp artisan migrateNesse momento está sendo criado a tabela que irá conter as moedas disponíveis para conversão.
php artisan db:seedAs moedas para conversão estão na tabela coin_conversions.
php artisan servePara 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 testVocê 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