Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lsmcodes/nlw-journey-trilha-java
Planner de viagens desenvolvido durante o evento NLW Journey oferecido pela Rocketseat.
https://github.com/lsmcodes/nlw-journey-trilha-java
java nlw-journey-java rocketseat rocketseat-nlw spring-boot
Last synced: 16 days ago
JSON representation
Planner de viagens desenvolvido durante o evento NLW Journey oferecido pela Rocketseat.
- Host: GitHub
- URL: https://github.com/lsmcodes/nlw-journey-trilha-java
- Owner: lsmcodes
- Created: 2024-07-09T01:31:52.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-07-14T20:00:27.000Z (7 months ago)
- Last Synced: 2024-11-22T23:09:49.157Z (3 months ago)
- Topics: java, nlw-journey-java, rocketseat, rocketseat-nlw, spring-boot
- Language: Java
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NLW Journey - Planner de Viagens
## Visão Geral
Este repositório contém uma API REST Java de planejamento de viagens, desenvolvida durante o evento `NLW Journey` oferecido pela `Rocketseat`. As três aulas ministradas durante o evento cobriram os seguintes assuntos:
* Banco em memória H2;
* JPA;
* Migrations com FlyWay;
* Uso de records para transferência de dados;
* Lombok.## Desafios
Ao final da terceira aula da trilha Java, os desafios a seguir foram propostos:
* Validar os campos de data durante a criação de uma viagem para que a data de início de uma viagem não seja inferior à data de término;
* Validar o campo de data durante a criação de uma atividade para garantir que a data de realização de uma viagem seja durante o período da viagem a qual ela pertence;
* Adição de mapeamento e tratamento de exceções personalizadas.## **Endpoints**
### Trips
| URI | Método | Ação | Body |
| ------------------------ | ------- | ------------------------ | --------------------------- |
| /trips | POST | Criar uma viagem | [JSON](#criaratualizar-viagem) |
| /trips/{id} | GET | Buscar uma viagem | N/A |
| /trips/{id} | PUT | Atualizar uma viagem | [JSON](#criaratualizar-viagem) |
| /trips/{id}/confirm | POST | Confirmar uma viagem | N/A |
| /trips/{id}/invite | POST | Convidar um participante | [JSON](#convidar-participante) |
| /trips/{id}/participants | GET | Buscar participantes | N/A |
| /trips/{id}/activities | POST | Adicionar uma atividade | [JSON](#criar-atividade) |
| /trips/{id}/activities | GET | Buscar atividades | N/A |
| /trips/{id}/links | POST | Adicionar um link | [JSON](#criar-link) |
| /trips/{id}/links | GET | Buscar links | N/A |### Participants
| URI | Método | Ação | Body |
| -------------------------- | ------- | ------------------------- | ---- |
| /participants/{id}/confirm | POST | Confirmar um participante | N/A |## Body
A seguir estão os modelos que devem ser utilizados para cada uma das requisições que os exigirem:
### Criar/Atualizar Viagem
```json
{
"destination":"São Paulo, SP",
"startsAt":"2024-06-25T06:00:00.000",
"endsAt":"2024-06-30T21:00:00.000",
"emailsToInvite": [
"[email protected]"
],
"ownerName":"Criador da viagem",
"ownerEmail":"[email protected]"
}
```### Convidar Participante
```json
{
"email":"[email protected]"
}
```### Confirmar Participante
```json
{
"name":"Participante"
}
```### Criar Atividade
```json
{
"title":"Ir ao Parque Ibirapuera",
"occursAt":"2024-06-27T09:00:00.000"
}
```### Criar Link
```json
{
"title":"O que fazer: São Paulo",
"url":"https://www.tripadvisor.com.br/Attractions-g303631-Activities-Sao_Paulo_State_of_Sao_Paulo.html"
}
```