API REST consumida por la app de clima.
GET /api/v1/onecall?lat={latitude}&lon={longitude}
GET /api/v1/ip-api?ip={ip_address}
GET /api/v1/geo/direct?city={city_name}
GET /api/v1/geo/reverse?lat={latitude}&lon={longitude}
Para poder ejecutar la api en forma local, es necesario generar una api key en Open Weather Map, y suscribirse al servicio One Call 3.0. Luego poner esa api key en la variable de entorno
OPEN_WEATHER_MAP_API_KEY
. Puede seguir las instrucciones aqui
- 📦src
- ┣ 📂api
- ┃ ┣ 📂v1
- ┃ ┃ ┣ 📂geo
- ┃ ┃ ┃ ┣ 📂controller
- ┃ ┃ ┃ ┗ 📂routes
- ┃ ┃ ┣ 📂ip-api
- ┃ ┃ ┃ ┣ 📂controller
- ┃ ┃ ┃ ┗ 📂routes
- ┃ ┃ ┗ 📂onecall
- ┃ ┃ ┃ ┣ 📂controller
- ┃ ┃ ┃ ┗ 📂routes
- ┃ ┗ 📂v2
- ┣ 📂interfaces
- ┣ 📂services
- ┗ 📂utils
- 📦test
How to use this template:
npx create-express-api --typescript --directory my-api-name
Includes API Server utilities:
- morgan
- HTTP request logger middleware for node.js
- helmet
- Helmet helps you secure your Express apps by setting various HTTP headers. It's not a silver bullet, but it can help!
- dotenv
- Dotenv is a zero-dependency module that loads environment variables from a
.env
file intoprocess.env
- Dotenv is a zero-dependency module that loads environment variables from a
- cors
- CORS is a node.js package for providing a Connect/Express middleware that can be used to enable CORS with various options.
Development utilities:
- typescript
- TypeScript is a language for application-scale JavaScript.
- ts-node
- TypeScript execution and REPL for node.js, with source map and native ESM support.
- nodemon
- nodemon is a tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected.
- eslint
- ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code.
- typescript-eslint
- Tooling which enables ESLint to support TypeScript.
- jest
- Jest is a delightful JavaScript Testing Framework with a focus on simplicity.
- supertest
- HTTP assertions made easy via superagent.
- Husky + Lint-Staged + Eslint + Prettier
cp .env.example
npm install
npm run lint
npm run test
npm run dev