Skip to content

API ​

Introducción ​

   

Acerca de la API ​

API desarrollada con Node.js y conectada mediante Mongoose a una base de datos MongoDB alojada en un clúster de MongoDB Atlas.

El proyecto está alojado en Heroku.

Código de color ​

RGB #a61a5e  rgb(166, 26, 94) / sRGB #c21360  rgb(194, 19, 96)

Tecnologías utilizadas ​

Otras herramientas ​

  • Robo3T
  • MongoDB Compass
  • Postman
  • CircleCI

Dependencias ​

Visita la página ​

https://api.disboard.team

Repositorio privado ​

https://github.com/Qu4k3/disboard-api

Jugadores ​

Descripción del recurso /players ​

MÉTODORUTADESCRIPCIÓN
GET/playersObtiene la lista de todos los jugadores
GET/players/:playerIdObtiene un jugador concreto por su ID (consulta la nota)
POST/playersAñade un jugador a la base de datos
PUT/players/:playerIdModifica la información de un jugador concreto
DEL/players/:playerIdElimina un jugador

Nota

:playerId puede ser tanto el ID de usuario proporcionado por la aplicación como el ID único de Discord.

Permisos

Algunas rutas requieren autenticación y no están disponibles públicamente.

Endpoints y métodos /players ​

Parámetros /players ​

Ejemplo de solicitud /players ​

Ejemplo de respuesta y esquema /players ​

json
{
    "player_id" : String, // ID del jugador
    "player_name" : String, // Nombre del jugador
    "player_team" : String, // Referencia al ID del equipo
    "country" : {
        "name" : String, // País
        "code" : String // Código del país
    },
    "player_registry" : [
        {
            "role" : String, // Tipo de rol (p. ej., miembro, aliado, aspirante)
            "in" : Date, // Fecha de incorporación
            "out" : Date, // Fecha de salida
        }
    ],
    "discord" : {
        "unique_id" : String, // ID único de Discord
        "user_tag" : String, // Etiqueta del usuario de Discord
        "avatar_url" : String, // URL de la imagen de perfil de Discord
        "roles" : [
            {
                "role" : String, // Rol de Discord
                "role_color" : String // Color del rol de Discord en hexadecimal
            }
        ]
    },
    "switch_fc" : String, // Código de amistad de Nintendo Switch
    "mkc_player_profile" : String // Enlace al perfil del jugador en MKC (p. ej., https://www.mariokartcentral.com/mkc/players/10)
}

Equipos ​

Descripción del recurso /teams ​

MÉTODORUTADESCRIPCIÓN
GET/teamsObtiene la lista de todos los equipos
GET/teams/Obtiene un equipo concreto por su ID
POST/teamsAñade un equipo
PUT/teams/Modifica la información de un equipo concreto
DEL/teams/Elimina un equipo

Permisos

Algunas rutas requieren autenticación y no están disponibles públicamente.

Endpoints y métodos /teams ​

Parámetros /teams ​

Ejemplo de solicitud /teams ​

Ejemplo de respuesta y esquema /teams ​

json
{
    "team_id" : String, // ID único del equipo
    "team_name" : String, // Nombre del equipo
    "team_tag" : String, // Etiqueta del equipo
    "team_logo" : String, // Enlace directo a la imagen
    "mkc_team_profile" : String // Enlace al perfil del equipo en MKC (p. ej., https://www.mariokartcentral.com/mkc/teams/42)
}

Guerras ​

Descripción del recurso /wars ​

MÉTODORUTADESCRIPCIÓN
GET/warsObtiene la lista de todas las guerras
GET/wars/:warIdObtiene una guerra concreta por su ID
POST/warsAñade una guerra
PUT/wars/:warIdModifica la información de una guerra
DEL/wars/:warIdElimina una guerra

Permisos

Algunas rutas requieren autenticación y no están disponibles públicamente.

Endpoints y métodos /wars ​

Parámetros /wars ​

Ejemplo de solicitud /wars ​

Ejemplo de respuesta y esquema /wars ​

json
{
    "war_id": String, // ID de la guerra
    "played_at" : Date, // Fecha en que se disputó la guerra
    "game" : {
        "name" : String, // Código del juego; valor predeterminado: MK8D
        "mode" : String // Código del modo de juego; valor predeterminado: 150cc
    },
    "type" : String, // Tipo de partida; valor predeterminado: amistosa
    "tags" : [
        String // Etiquetas para agrupar o asociar guerras
    ],
    "results" : [
        {
            "team" : ObjectId, // Referencia al ID del equipo
            "host" : Boolean, // Indica si el equipo organiza la partida
            "score" : Number, // Puntuación final del equipo
            "penality" : Number, // Puntos de penalización
            "players" : [
                {
                    "player" : ObjectId, // Referencia al ID del jugador
                    "score" : Number // Puntuación del jugador
                }
            ]
        },
        {
            "team" : ObjectId, // Referencia al ID del equipo
            "host" : Boolean, // Indica si el equipo organiza la partida
            "score" : Number, // Puntuación final del equipo
            "penality" : Number, // Puntos de penalización
            "players" : [
                {
                    "player" : String, // Nombre del jugador
                    "score" : Number // Puntuación del jugador
                }
            ]
        }
    ]
}