Skip to content

Latest commit

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Weather API

Tabla de contenidos

Descripción
Escenario
Endpoints - Ubicaciones
Endpoints - Clima

Descripción

Esta es una API REST desarrollada en golang para obtener información sobre el clima de ubicaciones específicas.

Escenario

Para lograr el cometido, la API persiste en formato json una lista de ubicaciones establecidas por el usuario de la misma. Luego se puede consultar en simultáneo la información climática para toda la lista.

Endpoints

GET - Ping()

localhost:8080/ping

Response code: 200 Response body:

{
"mensaje": "pong!"
}

GET - IP()

localhost:8080/ip

OKError interno
Response code200500
Response body1*2*

Response body: (1)

{
"mensaje" : "179.0.238.1"
}

}

Response body: (2)

{ "mensaje": "Error al obtener su IP"
}

GET - GetLocation()

localhost:8080/location

OKError interno
Response code200500
Response body1*2*

Response body: (1)

{
"Status": "success",
"Data": {
"subdivision_1_name": "Cordoba",
"city_name": "Almafuerte",
"latitude": "-32.15560",
"longitude": "-64.23890"
}

}

Response body: (2)

{ "mensaje": "Error al obtener su ubicación"
}

GET - GetLocations()

localhost:8080/locations

OKNo encontradoError interno
Response code200404500
Response body1*2*3*

Response body: (1)

[
{
"id": "236294580",
"name": "Río Tercero, Pedanía Yucat, Departamento General San Martín, Córdoba, X5900, Argentina",
"lat": "-32.3760926",
"lon": "-63.450102"
},
...
}

Response body: (2)

{ "mensaje": "No hay ubicaciones cargadas"
}

Response body: (3)

{ "mensaje": "Error al obtener los datos de la base de datos"
}

GET - GetLocationID()

localhost:8080/locations/{id}

OKNo encontradoError interno
Response code200404500
Response body1*2*3*

Response body: (1)

{
"id": "236689588",
"name": "Almafuerte, Municipio de Almafuerte, Pedanía Salto, Departamento Tercero Arriba, Córdoba, X5854, Argentina",
"lat": "-32.1917687",
"lon": "-64.255066"
}

Response body: (2)

{ "mensaje": "Ubicación no encontrada"
}

Response body: (3)

{ "mensaje": "Error al obtener los datos de la base de datos"
}

POST - PostLocation()

localhost:8080/location

Request body:

{
"City": "Rio Tercero",
"State": "Cordoba",
"Country": "Argentina"
}
OKUbicación existenteDatos inválidos
Response code201400400
Response body1*2*3*

Response body: (1)

{
"message": "Ubicación agregada con éxito"
}

Response body: (2)

{ "message": "La ubicación ya se encuentra registrada"
}

Response body: (3)

{
"message": "JSON inválido"
}

DELETE- DeleteLocation()

localhost:8080/location/{id}

OKNo encontradoError interno
Response code204404500
Response body1*2*

Response body: (1)

{
"message": "Ubicación no encontrada"
}

Response body: (2)

{
"Error al borrar la ubicación"
}

PUT- UpdateLocation()

localhost:8080/location

Request body:

{
"City": "Rio Tercero",
"State": "Cordoba",
"Country": "Argentina"
}
OKNo encontradoError interno
Response code200404500
Response body1*2*3*

Response body: (1)

{
"message": "Ubicación actualizada con éxito"
}

Response body: (2)

{
"Ubicación no encontrada"
}

Response body: (3)

{
"Error al actualizar la ubicación"
}

GET - GetWeather()

localhost:8080/weather

OKNo encontradoError interno
Response code200500500
Response body1*2*3*

Response body: (1)

{
"weather": [
{
"description": "scattered clouds"
}
],
"main": {
"temp": 29.28,
"feels_like": 31.15,
"humidity": 58
},
"name": "Almafuerte"
}

Response body: (2)

{ "mensaje": "Error al obtener su ubicación"
}

Response body: (3)

{ "mensaje": "Error al obtener el clima"
}

GET - GetWeatherID()

localhost:8080/weather/{id}

OKNo encontradoError interno
Response code200404500
Response body1*2*3*

Response body: (1)

{
"weather": [
{
"description": "scattered clouds"
}
],
"main": {
"temp": 29.28,
"feels_like": 31.15,
"humidity": 58
},
"name": "Almafuerte"
}

Response body: (2)

{
"mensaje": "Ubicación no encontrada"
}

Response body: (3)

{ "mensaje": "Error al obtener el clima"
}

GET - GetAllWeathers()

localhost:8080/allWeathers/

OKNo encontradoError interno
Response code200404500
Response body1*2*3*

Response body: (1)

[
{
"weather": [
{
"description": "scattered clouds"
}
],
"main": {
"temp": 29.28,
"feels_like": 31.15,
"humidity": 58
},
"name": "Almafuerte"
},
...
]

Response body: (2)

{ "mensaje": "No hay ubicaciones cargadas"
}

Response body: (3)

{ "mensaje": "Error al obtener el clima"
}

About

This is a golang API that retrieves weather information for a certain list of locations.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages