Este é um projeto desenvolvido como atividade do módulo de Testes Automatizados do curso de C# da AdaTech em parceria com o Mercado Eletrônico.
- Clone o repositório
- Rode o código na sua maáquina
- A API estará acessível no link https://localhost:7106/ 4.É possível acesso a documentação do Swagger em https://localhost:7106/swagger/index.html
- Receber uma url qualquer e retornar um objeto que contém:
- O id da requisição
- a url curta
- o tempo em segundos pelo qual a url curta será válida
- Retornar a url original ao consultar uma url curta válida;
- Retornar um error, caso não exista uma url original válida para a url curta consultada;
- A última parte da url encurtada deve ter no máximo 7 caracteres.
A API tem os seguintes endpoints:
---------URL-----------
GET /{shortUrl} - redirect to a website using the short version
POST /{originalUrl} - create a short link to a website
Para gerar a url curta os seguintes passos são seguidos:
- As strings "https", "http" e "www" são removidas da string original
- Todos os caracteres não alfanuméricos são removidos da string original
- A string é deixada lower case
- É feita a soma do valor na tabela ascii de todos os caracteres da string resultante
- A soma dos dígitos da soma do passo anterior é feita
- O resultado da soma do passo 4 é transformado em um binário de 6 dígitos
- Caso o binário resultante já esteja em uso, ele é adicionado de uma letra, de "A" até "z", até que haja uma opção livre
- Caso o binário não esteja em uso, ele é transformado em um binário de 7 dígitos
Ex: "https://www.netflix.com/browse"
- ://.netflix.com/browse
- netflixcombrowse
- netflixcombrowse
- 110 + 101 + 116 + 102 + 108 + 105 + 120 + 99 + 111 + 98 + 114 + 111 + 119 + 115 + 101 = 1739
- 1+7+3+9 = 20
- 20 = 010100
- Caso esteja em uso -> 010100A
- Caso não esteja em uso -> 0010100
A api possui testes automatizados no projeto de teste chamado UrlShortenerTest.
A API tem integração com o banco de dados SQLite, com Entity Framework Core como ORM.