Quem nunca precisou encurtar uma URL? Normalmente, recorremos a sites conhecidos, como o https://www.encurtador.com.br/ para atender a essa necessidade.
Mas agora, vamos criar juntos o nosso próprio encurtador de URLs.
Para atender à necessidade do usuário de encurtar uma URL, iremos desenvolver uma API com os seguintes endpoints:
- createShortUrlFromOriginalUrl:
Este é um método que trata uma solicitação POST para um endpoint que espera um parâmetro de consulta originalUrl. Ele usa a classe UrlService para salvar ou atualizar a URL original fornecida e retorna uma resposta de objeto ResponseEntity que contém um objeto Url no corpo da resposta, representando a nova URL criada com sucesso. O código de status HTTP retornado é 201 CREATED. - redirectToOriginalUrl:
Este é um método que trata uma solicitação GET para um endpoint que inclui um parâmetro de caminho dinâmico ({shortUrl}). Ele usa a classe UrlService para recuperar a URL original correspondente ao URL encurtado fornecido. Em seguida, ele cria uma nova URI a partir da URL original e configura as informações do cabeçalho HTTP para especificar a localização da nova URI. A resposta é retornada como um objeto ResponseEntity, já que não há corpo de resposta associado a essa solicitação. O código de status HTTP retornado é MOVED_PERMANENTLY (301), que indica ao navegador para redirecionar o usuário para a nova localização.
- Conhecimento prévio acerca de POO com Java
- IDE para desenvolvimento Java (IntelliJ IDEA Community)
- Client API (Postman)
- Conhecimentos básicos API Rest com Spring Boot Web
- Noções sobre Banco de dados Relacionais (PostgreSQL)
- Configuração de ambiente com Docker Compose
- Noções sobre Testes Unitários (JUnit 5)
- Noções sobre Testes de Integração (Spring Boot Test)
- Documentação com Swagger
- Hospedagem na alguma núvem pública Railway.app
- https://start.spring.io/#!type=gradle-project&language=kotlin&platformVersion=3.0.3&packaging=jar&jvmVersion=17&groupId=me.dio&artifactId=credit-application-system&name=credit-application-system&description=Credit%20Application%20System%20with%20Spring%20Boot%20and%20Kotlin&packageName=me.dio.credit-application-system&dependencies=web,validation,data-jpa,flyway,h2
- https://docs.spring.io/spring-boot/docs/2.0.x/reference/html/common-application-properties.html
- https://medium.com/cwi-software/versionar-sua-base-de-dados-com-spring-boot-e-flyway-be4081ddc7e5
- https://strn.com.br/artigos/2018/12/11/todas-as-anota%C3%A7%C3%B5es-do-jpa-anota%C3%A7%C3%B5es-de-mapeamento/
- https://pt.wikipedia.org/wiki/Objeto_de_Transfer%C3%AAncia_de_Dados
- https://pt.wikipedia.org/wiki/CRUD
- https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repository-query-keywords
- https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query
- https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#glossary
Camila Cavalcante
Feito com ❤️ por Cami-la 👋🏽 Entre em contato!