/womens-world-cup-2023

RESTful API da Copa do Mundo FIFA de Futebol Feminino 2023 construída em Kotlin com Spring Boot 3.

Primary LanguageKotlinMIT LicenseMIT

Women's World Cup 2023: A Koltin RESTful API

Este é um projeto que visa fornecer informações sobre a Copa do Mundo de Futebol Feminino de 2023. O projeto inclui uma API em Kotlin que permite o acesso aos dados das seleções participantes e integração com o ChatGPT-4 para simular as partidas da Copa e prever os resultados dos jogos.

Configuração

Essas instruções fornecerão aos usuários as etapas necessárias para clonar o repositório e iniciar a aplicação em diferentes ambientes (Unix e Windows) com o perfil de desenvolvimento ativado.

  1. Clone o repositório: git clone git@github.com:digitalinnovationone/womens-world-cup-2023.git
  2. Inicie a aplicação no ambiente Unix: ./gradlew bootrun --args='--spring.profiles.active=dev'
  3. Inicie a aplicação no ambiente Windows: gradle.bat bootrun --args='--spring.profiles.active=dev'

Para integrar com o ChatGPT e usá-lo como um modelo para análise de sentimentos dos nossos comentários.

Seguem alguns links úteis:

  1. Endpoint de Chat Completion (que vamos consumir)
  2. Collection Postman da OpenAI (útil pra entender todas as APIs da OpenAI)

Request

curl https://api.openai.com/v1/chat/completions \
 -H "Authorization: Bearer $OPENAI_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
 "model": "gpt-3.5-turbo",
 "messages": [
    {"role": "user", "content": "What is the OpenAI mission?"}] 
 }'

Response

{
  "id": "chatcmpl-6p5FEv1JHictSSnDZsGU4KvbuBsbu",
  "object": "messages",
  "created": 1677693600,
  "model": "gpt-3.5-turbo",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "OpenAI's mission is to ensure that AI benefits all of humanity."
      }
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 18,
    "total_tokens": 38
  }
}

Uso da API

Request

Simular partida entre dois times:

  • Método: GET
  • Endpoint: /simulate/{team1Id}/{team2Id}

Parâmetros de caminho:

  • {team1Id}: ID da primeira equipe.

  • {team2Id}: ID da segunda equipe.

  • Exemplo de solicitação:

GET /simulate/ARG/BRA

Response

  • Código de resposta: 200 OK
  • Corpo da resposta: TeamDto contendo os dados da equipe vencedora.

Exemplo de resposta:

{
  "id": "ARG",
  "name": "Argentina",
  "score": 1682.45
}

Códigos de resposta possíveis:

  • 200 OK: A simulação foi concluída com sucesso e a equipe vencedora é retornada.
  • 422 Unprocessable Entity: Uma ou ambas as equipes não foram encontradas na Copa do Mundo Feminina.

Documentação do Swagger

A documentação da API pode ser encontrada no Swagger. Para visualizá-la, acesse: Documentação do Swagger.

Hospedagem no Railway.app

Durante a live hospedamos o projeto no Railway.app na seguinte URL: https://wwc-2023-prd.up.railway.app/swagger-ui.html

Licença

Este projeto está licenciado sob a licença MIT. Consulte o arquivo (LICENSE) para obter.

Autores


Venilton FalvoJr

LinkedIn

Camila Cavalcante

LinkedIn