Skip to content

Latest commit

 

History

History
570 lines (478 loc) · 9.04 KB

README.md

File metadata and controls

570 lines (478 loc) · 9.04 KB

Repositorios do Projeto


Documentação da API

FOSSA Status Quality Gate Status

License

FOSSA Status


Endpoints

Teste de Conexão

GET /ping

Retorna uma resposta de teste para verificar se a API está ativa.

Resposta de Sucesso:

200 OK
pong

Endpoints de Usuário (Login)

POST /

Endpoint para login de usuário (a ser implementado).


Endpoints de Atleta

POST /atleta

Cria um novo atleta.

Corpo da Requisição:

{
    "id": 1,
    "userID": 1,
    "nome": "Nome do Atleta",
    "nascimento": "2000-01-01",
    "documento": "123456789"
}

Resposta de Sucesso:

201 Created
{
    "message": "Atleta created successfully",
    "id": 1
}

GET /atletas/:userID

Obtém todos os atletas de um usuário com base no ID do usuário.

Parâmetros da URL:

  • userID: ID do usuário.

Resposta de Sucesso:

200 OK
[
    {
        "id": 1,
        "usuario": 1,
        "nome": "Nome do Atleta",
        "nascimento": "2000-01-01",
        "documento": "123456789"
    }
]

GET /atleta

Obtém informações sobre um atleta específico com base no nome e no proprietário.

Parâmetros da Query:

  • nome: Nome do atleta.
  • userID: ID do usuário proprietário.

Resposta de Sucesso:

200 OK
{
    "id": 1,
    "usuario": 1,
    "nome": "Nome do Atleta",
    "nascimento": "2000-01-01",
    "documento": "123456789"
}

Endpoints de Cavalo

POST /cavalo

Cria um novo cavalo.

Corpo da Requisição:

{
    "id": 1,
    "userID": 1,
    "nome": "Nome do Cavalo"
}

Resposta de Sucesso:

201 Created
{
    "message": "Cavalo created successfully",
    "id": 1
}

GET /cavalos/:userID

Obtém todos os cavalos de um usuário com base no ID do usuário.

Parâmetros da URL:

  • userID: ID do usuário.

Resposta de Sucesso:

200 OK
[
    {
        "id": 1,
        "usuario": 1,
        "nome": "Nome do Cavalo"
    }
]

GET /cavalo

Obtém informações sobre um cavalo específico com base no nome e no proprietário.

Parâmetros da Query:

  • nome: Nome do cavalo.
  • userID: ID do usuário proprietário.

Resposta de Sucesso:

200 OK
{
    "id": 1,
    "usuario": 1,
    "nome": "Nome do Cavalo"
}

Endpoints de Entidade

POST /entidade

Cria uma nova entidade.

Corpo da Requisição:

{
    "id": 1,
    "userID": 1,
    "nome": "Nome da Entidade",
    "endereco": "Endereço da Entidade"
}

Resposta de Sucesso:

201 Created
{
    "message": "Entidade created successfully",
    "id": 1
}

GET /entidades/:userID

Obtém todas as entidades de um usuário com base no ID do usuário.

Parâmetros da URL:

  • userID: ID do usuário.

Resposta de Sucesso:

200 OK
[
    {
        "id": 1,
        "usuario": 1,
        "nome": "Nome da Entidade",
        "endereco": "Endereço da Entidade"
    }
]

GET /entidade

Obtém informações sobre uma entidade específica com base no nome e no proprietário.

Parâmetros da Query:

  • nome: Nome da entidade.
  • userID: ID do usuário proprietário.

Resposta de Sucesso:

200 OK
{
    "id": 1,
    "usuario": 1,
    "nome": "Nome da Entidade",
    "endereco": "Endereço da Entidade"
}

Endpoints de Inscrição

POST /inscricao

Cria uma nova inscrição.

Corpo da Requisição:

{
    "id": 1,
    "atleta": 1,
    "cavalo": 1,
    "dia": 1,
    "evento": 1,
    "altura": 1,
    "categoria": 1
}

Resposta de Sucesso:

201 Created
{
    "message": "Inscricao created successfully",
    "id": 1
}

Endpoints de Evento

POST /evento

Cria um novo evento.

Corpo da Requisição:

{
    "id": 1,
    "entidade": 1,
    "nome": "Nome do Evento",
    "descricao": "Descrição do Evento",
    "inicio": "2023-01-01",
    "fim": "2023-01-02"
}

Resposta de Sucesso:

201 Created
{
    "message": "Evento created successfully",
    "id": 1
}

GET /evento/closest

Obtém o evento com a data mais próxima da data atual.

Resposta de Sucesso:

200 OK
{
    "id": 1,
    "entidade": 1,
    "nome": "Nome do Evento",
    "descricao": "Descrição do Evento",
    "inicio": "2023-01-01",
    "fim": "2023-01-02"
}

GET /eventos

Obtém todos os eventos, ordenados pela data mais próxima primeiro.

Resposta de Sucesso:

200 OK
[
    {
        "id": 1,
        "entidade": 1,
        "nome": "Nome do Evento",
        "descricao": "Descrição do Evento",
        "inicio": "2023-01-01",
        "fim": "2023-01-02"
    }
]

Endpoints de Dia

POST /dia

Cria um novo dia.

Corpo da Requisição:

{
    "id": 1,
    "evento": 1,
    "data": "2023-01-01"
}

Resposta de Sucesso:

201 Created
{
    "message": "Dia created successfully",
    "id": 1
}

Endpoints de Altura

POST /altura

Cria uma nova altura.

Corpo da Requisição:

{
    "id": 1,
    "dia": 1,
    "altura": "1.20m"
}

Resposta de Sucesso:

201 Created
{
    "message": "Altura created successfully",
    "id": 1
}

Endpoints de Categoria

POST /categoria

Cria uma nova categoria.

Corpo da Requisição:

{
    "id": 1,
    "nome": "Nome da Categoria"
}

Resposta de Sucesso:

201 Created
{
    "message": "Categoria created successfully",
    "id": 1
}

Estrutura de Dados

Atleta

{
    "id": 1,
    "usuario": 1,
    "nome": "Nome do Atleta",
    "nascimento": "2000-01-01",
    "documento": "123456789"
}

Cavalo

{
    "id": 1,
    "usuario": 1,
    "nome": "Nome do Cavalo"
}

Entidade

{
    "id": 1,
    "usuario": 1,
    "nome": "Nome da Entidade",
    "endereco": "Endereço da Entidade"
}

Evento

{
    "id": 1,
    "entidade": 1,
    "nome": "Nome do Evento",
    "descricao": "Descrição do Evento",
    "inicio": "2023-01-01",
    "fim": "2023-01-02"
}

Dia

{
    "id": 1,
    "evento": 1,
    "data": "2023-01-01"
}

Altura

{
    "id": 1,
    "dia": 1,
    "altura": "1.20m"
}

Categoria

{
    "id": 1,
    "nome": "Nome da Categoria"
}

Exemplo de Uso

Testar Conexão:

curl -X GET http://localhost:8080/ping

Criar Atleta:

curl -X POST http://localhost:8080/atleta -H "Content-Type: application/json" -d '{
    "id": 1,
    "userID": 1,
    "nome": "Nome do Atleta",
    "nascimento": "2000-01-01",
    "documento": "123456789"
}'

Obter Atletas de um Usuário:

curl -X GET http://localhost:8080/atletas/1

Obter Atleta Específico:

curl -X GET 'http://localhost:8080/atleta?nome=John&userID=1'

Criar Cavalo:

curl -X POST http://localhost:8080/cavalo -H "Content-Type: application/json" -d '{
    "id": 1,
    "userID": 1,
    "nome": "Nome do Cavalo"
}'

Obter Cavalos de um Usuário:

curl -X GET http://localhost:8080/cavalos/1

Obter Cavalo Específico:

curl -X GET 'http://localhost:8080/cavalo?nome=Thunder&userID=1'

Criar Entidade:

curl -X POST http://localhost:8080/entidade -H "Content-Type: application/json" -d '{
    "id": 1,
    "userID": 1,
    "nome": "Nome da Entidade",
    "endereco": "Endereço da Entidade"
}'

Obter Entidades de um Usuário:

curl -X GET http://localhost:8080/entidades/1

Obter Entidade Específica:

curl -X GET 'http://localhost:8080/entidade?nome=Riding Club&userID=1'

Criar Evento:

curl -X POST http://localhost:8080/evento -H "Content-Type: application/json" -d '{
    "id": 1,
    "entidade": 1,
    "nome": "Nome do Evento",
    "descricao": "Descrição do Evento",
    "inicio": "2023-01-01",
    "fim": "2023-01-02"
}'

Obter Evento Mais Próximo:

curl -X GET http://localhost:8080/evento/closest

Obter Todos os Eventos:

curl -X GET http://localhost:8080/eventos

Criar Dia:

curl -X POST http://localhost:8080/dia -H "Content-Type: application/json" -d '{
    "id": 1,
    "evento": 1,
    "data": "2023-01-01"
}'

Criar Altura:

curl -X POST http://localhost:8080/altura -H "Content-Type: application/json" -d '{
    "id": 1,
    "dia": 1,
    "altura": "1.20m"
}'

Criar Categoria:

curl -X POST http://localhost:8080/categoria -H "Content-Type: application/json" -d '{
    "id": 1,
    "nome": "Nome da Categoria"
}'