marcesdan / weather-app-api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Weather API

API REST consumida por la app de clima.

Endpoints

  • 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

Estructura de directorios

  • 📦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 into process.env
  • 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

Setup

cp .env.example
npm install

Lint

npm run lint

Test

npm run test

Development

npm run dev

About

License:MIT License


Languages

Language:TypeScript 98.2%Language:JavaScript 1.3%Language:Shell 0.5%