IglanCardeal / my-sweet-beach-api

🌤️🌦️⛈️🌨️ API de previsão do clima para praias e surf.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

My Sweet Beach API

weather-wallpapper

API para consulta e previsão do clima em qualquer praia do globo

API em construção... 🔨 👷‍♂️ 👨‍💻

README.md completo em breve...

Tabela de conteúdos

Não tem MongoDB instalado?

Sem problemas!

Atlas

Você pode inserir uma URI de algum provedor como o Atlas. Neste caso, vamos definir um URI no campo mongoUrl. Esta propriedade do default.json tem prioridade, logo se você definiu uma URI, ela será usada, senão deixea vazia por padrão do default-example.json. A URI a ser usada, no caso se você usar o Atlas, terá o formato semelhante a seguir:

{
  "App": {
    "port": 3000,
    "database": {
      "mongoUrl": "mongodb+srv://<username>:<password>@cluster0.zcr3z.mongodb.net/<dbname>?retryWrites=true&w=majority"
    },
    "resources": {
      "StormGlass": {
        "apiUrl": "https://api.stormglass.io/v2",
        "apiToken": ""
      }
    }
  }
}

Onde:

  • username: seu nome de usuário

  • password: sua senha

  • dbname: nome da base de dados. Eu recomendo chamar de email-performance-app

Tendo realizado todas as configurações, execute npm run dev ou yarn dev para iniciar a aplicação em modo de desenvolvimento(development).

OBS: ao executar o comando para iniciar a aplicação, será exibido no terminal a URI de conexão com o banco.

Você usa Docker? 🐳

Uma solução alternativa é subir um container do Docker do MongoDB. Existe a imagem oficial do mongo que podemos usar para subir um container MongoDB e usar o banco de dados. Na raíz do projeto temos um arquivo docker-compose.yml com as seguintes características:

version: '3'

services:
  mongo:
    container_name: weather-forecast-api
    restart: always
    ports:
      - 27017:27017
    image: mongo
    volumes:
      - ./MongoDB:/data/dbc

Esse arquivo é a base para gerar um container do mongodb. Na raíz do projeto, execute o comando docker-compose up para iniciar o serviço do MongoDB. Faça os ajustes no arquivo default.json de acordo com a configuração do container ou deixe o padrão do default-example.json.

Testes Automatizados

Foi utilizado o JEST para os criação de testes automatizados. O sistema é coberto por testes de unidade e de integração. Ambos possuem seus próprios arquvivos de configuração (jest.config.js) e a nomenclatura possui diferença semântica quanto ao tipo de teste:

  • Os testes de unidade possuem nomenclatura de arquivo do tipo *.test.ts.
  • Os testes de integração, os arquivos são nomeados com padrão *.spec.ts.

A nomenclatura dos arquivos de testes são apenas uma convenção adotada por mim.

Autor

iglan cardeal

Iglan Cardeal

Desenvolvido e mantido por Iglan Cardeal 🔨
Desenvolvedor NodeJS 💻
Entre em contato! 👋🏽

cURL

Usando curl para testar uma url:

curl "https://api.stormglass.io/v2/weather/point?lat=58.7984&lng=17.8081&params=windSpeed" -H "Authorization: API_KEY" | json_pp -json_opt pretty,canonical
  • json_pp para formatar a saída do JSON.

Clean up duplicated packages

yarn -D add yarn-deduplicate

npx yarn-deduplicate yarn.lock

You can also add a verification step to your Continuous Integration (CI) pipeline like:

yarn-deduplicate yarn.lock --list --fail


About

🌤️🌦️⛈️🌨️ API de previsão do clima para praias e surf.


Languages

Language:TypeScript 97.6%Language:JavaScript 2.0%Language:Shell 0.2%Language:Makefile 0.2%