A API do Robô de Navegação permite controlar um robô em um ambiente bidimensional, com capacidade de movimento e rotação. O objetivo principal é enviar comandos para o robô e obter sua posição final.
- URL:
/api/rest/mars/{commands}
- Método HTTP: POST
- Descrição: Este endpoint permite enviar uma sequência de comandos para controlar o robô e retorna sua posição final.
Exemplo de Requisição:
curl -X POST http://localhost:8080/api/rest/mars/MMRMMRMM
Resposta de Sucesso (Status 200 OK):
{
"x": 2,
"y": 0,
"direction": "S"
}
Resposta de Erro (Status 400 Bad Request):
- Se os comandos forem inválidos:
"Invalid Command"
- Se a posição final estiver fora do limite (0 a 4 para ambas as coordenadas
x
ey
):
"Invalid Position"
- 'L': Gire o robô 90 graus à esquerda.
- 'R': Gire o robô 90 graus à direita.
- 'M': Mova o robô uma unidade para frente na direção atual.
- Exemplo 1: Mova o robô para frente e gire para a direita.
curl -X POST http://localhost:8080/api/rest/mars/MMRMMRMM
- Exemplo 2: Mova o robô para frente várias vezes.
curl -X POST http://localhost:8080/api/rest/mars/MMMMMMMMMMMMMMMMMMMMMMMM
- Exemplo 3: Mova o robô duas vezes para frente e depois gire à esquerda.
curl -X POST http://localhost:8080/api/rest/mars/MML
- Exemplo 4: Comando inválido.
curl -X POST http://localhost:8080/api/rest/mars/AAA
- O ambiente é uma grade de 5x5, representada pelas coordenadas (0 a 4 para
x
ey
). - Os comandos aceitos são 'L', 'R' e 'M'.
- O robô não pode sair dos limites da grade; comandos que o levariam para fora da grade são ignorados.
Para implantar o serviço do Robô de Navegação em seu ambiente, siga estas etapas:
-
Clonar o Repositório: Clone o repositório do projeto em seu sistema.
-
Construir e Executar: Use o Maven como por exemplo: mvn clean compile e mvn install para construir o projeto e execute-o.
-
Testar: Use a ferramenta da sua IDE para rodar os testes do serviço.