A simply api that returns the weather information based on zip or city.
It also has a /slack endpoint for using with slash-commands on slack bots.
By default you can pass the location you wish to recieve the weather about using query param zip, without a zipcode or location information the endpoint will return a status 400 error. By providing the endpoint with a location it will return a full response of fields. For a more minimal response, check out the /slack endpoint.
curl https://meteorology.herokuapp.com/?zip=10023Response
{
"location": {
"country": "US",
"sunrise": 1684920699,
"sunset": 1684973651,
"timezone": -14400,
"coord": {
"lon": -73.9827,
"lat": 40.7764
}
},
"weather": {
"temp": {
"current": {
"kelvin": 297.5,
"fahrenheit": 75.83,
"celsius": 24.35
},
"min": {
"kelvin": 292.99,
"fahrenheit": 67.712,
"celsius": 19.84
},
"max": {
"kelvin": 302.02,
"fahrenheit": 83.966,
"celsius": 28.87
},
"feels": {
"kelvin": 296.98,
"fahrenheit": 74.894,
"celsius": 23.83
}
},
"pressure": 1016,
"humidity": 38,
"condition": {
"code": 800,
"icon": "01d",
"description": "clear sky",
"main": "Clear"
},
"visibility": 10000,
"wind": {
"speed": 3.09,
"deg": 0
},
"clouds": {
"all": 0
}
}
}The Slack endpoint will reply to POST and GET requests. The endpoint will also take the location you wish to recieve the weather about using query param zip or in the body of as a URL-encoded field text just like slack bot use.
Simple usage for a Slack Command.
curl https://meteorology.herokuapp.com/slack?zip=10023Response
{
"response_type": "in_channel",
"text": "Current temperature in New York, is 69.224°F, with a humidity of 74%, Current Weather is broken clouds"
}The application is typescript and provided with a docker container which is used for a ubiquitious development experience. Tests, linting, and all CI/CD uses the docker container, you can build it using the following commands.
docker build -t crucible-standard/meteorology .
docker run crucible-standard/meteorology npm installNext you can run tests
docker run crucible-standard/meteorology npm run testBasic usage
docker run crucible-standard/meteorology npm run start