profile
viewpoint
Filipe Deschamps filipedeschamps Vancouver, Canada https://youtube.com/FilipeDeschamps A nice guy.

filipedeschamps/cep-promise 1196

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)

filipedeschamps/doom-fire-algorithm 910

Playground for the fire effect from DOOM. Really simple algorithm and all experiments are welcome!

filipedeschamps/rss-feed-emitter 808

Super RSS News Feed aggregator written in Node.js and ES6

filipedeschamps/meu-primeiro-jogo-multiplayer 537

Um jogo multiplayer bastante simples para testarmos o Socket.io

filipedeschamps/BrasilAPI 467

Vamos transformar o Brasil em uma API?

filipedeschamps/devradar 161

Projeto resultado da Semana Omnistack #10

filipedeschamps/javascriptmasters.com.br 118

Programação vai muito além da sintaxe

filipedeschamps/aircnc 62

Projeto resultado da Semana OmniStack #9

claudiosanches/woocommerce-pagarme 50

Receba pagamentos por cartão de crédito e boleto bancário utilizando o Pagar.me

push eventfilipedeschamps/BrasilAPI

Filipe Deschamps

commit sha 1dbbd58faec29cf6dbbe0b063f43bdf1adac1312

readme: adiciona contribuidor Adiciona @paulogdm

view details

push time in 18 hours

push eventfilipedeschamps/BrasilAPI

paulogdm

commit sha 2c42b21096f3318e1000b7fd107ae3b6b95358d0

Update [cep].js https://zeit.co/docs/v2/network/caching#stale-while-revalidate

view details

paulogdm

commit sha 1357c21575c57afed0753541461d8c408cb81608

Add stale-while-revalidate description

view details

Filipe Deschamps

commit sha 45208025569c5c965ac400fe1e539e8e71aee847

Merge pull request #30 from paulogdm/patch-1 feat: usar "stale-while-revalidate" para "[cep].js"

view details

push time in 18 hours

PR merged filipedeschamps/BrasilAPI

feat: usar "stale-while-revalidate" para "[cep].js"

Docs aqui 👉 LINK.

Basicamente, podemos usar a cache do ZEIT Now de maneira um pouco mais inteligente. O comportamente aqui é quase o mesmo do que apenas usar "s-maxage" mas sempre vamos garantir respostas rápidas a partir do primeiro request. Servimos o que a "cache tem" enquanto a plataforma revalida a informação no background.

Stale-while-revalidate

Uso prático: https://zeit.co/blog/serverless-pre-rendering (depreciado em breve por iSSG https://notion-blog.now.sh/).

+4 -3

4 comments

1 changed file

paulogdm

pr closed time in 18 hours

pull request commentfilipedeschamps/BrasilAPI

feat: usar "stale-while-revalidate" para "[cep].js"

Sensacional! Faz total sentido 👍

Merging!

paulogdm

comment created time in 18 hours

pull request commentfilipedeschamps/BrasilAPI

feat: usar "stale-while-revalidate" para "[cep].js"

Sensacional @paulogdm !!! Procurei na documentação e não encontrei: você sabe dizer o que acontece se o backend responder com erro? A CDN continua respondendo a versão stale? Eu assumo que sim por conta dessa parte:

Your backend functions and datasources can go down, and you will likely tolerate their downtime

Só fiquei confuso com o que significa exatamente a parte do "will likely tolerate". Se ele tolerar mesmo que o s-maxage tenha sido atingido, vai ser sensacional!!!

paulogdm

comment created time in 20 hours

PR opened filipedeschamps/BrasilAPI

tests: adiciona suite de testes com Jest e Github Actions

Pessoal, tudo bem? Segue minha proposta para suíte de testes do projeto. Mas antes, existem duas outras propostas: uma utilizando o Cypress https://github.com/filipedeschamps/BrasilAPI/pull/11 e outra integrando com o Travis CI https://github.com/filipedeschamps/BrasilAPI/pull/27

Resumo

O objetivo desta proposta é disponibilizar uma suíte de testes que utiliza a combinação do Jest com o Github Actions. O resultado esperado é, de uma forma simples, conseguir realizar testes locais utilizando o servidor local do Next.js e também testes remotos dentro do CI do Github utilizando a Preview URL disponibilizada pela Zeit (Now) que é uma URL única criada cada commit. Como bônus, o CORS é automaticamente testado pelo fato do Jest utilizar o jsdom que simula de forma programática o ambiente de um navegador (e CORS está incluso): mais informações.

Fluxo

Testes no seu ambiente local de desenvolvimento

Existem dois comandos para você rodar os testes na sua máquina local, um que roda os testes uma única vez e outro que roda os testes de forma contínua (a cada alteração que os arquivos sofrerem).

npm test
npm test:watch

Para isso acontecer, antes de todos os testes rodarem, o helper /tests/helpers/server.js identifica se você está em ambiente local ou ambiente do CI do Github. Se estiver em ambiente local (test injetado pelo Jest), ele irá:

  1. Rodar o servidor de desenvolvimento do Next.js
  2. Aguardar para que o endpoint /api/status/v1 fique disponível
  3. Rodar os testes contra a url http://localhost:3000
  4. Em seguida matar o servidor de desenvolvimento do Next.js.

Este é o resultado esperado de rodar npm test:

01-local-run

Testes de CI com Github Actions

Isto é feito utilizando os Workflows do Github Actions e esse arquivo de configuração pode ser encontrado na pasta /.github/workflows/e2e-tests.yml e o fluxo segue dessa forma:

  1. Ao realizar um Push, automaticamente o hook da Zeit começa a realizar o deploy com o código do commit para uma URL chamada de Preview URL.

02-zeit-deploy-start

  1. Este hook da Zeit dispara um evento no Github Actions chamado deployment_status e que neste momento estará com o status pending. O workflow fica escutando por este evento (no status pending) e no momento que ele acontece, o job mark-commit-status-pending marca esse novo commit enviado por você com o status de pending para bloquear o merge até que esse fluxo termine.

03-e2e-waiting-preview-url

  1. Quando a Zeit termina o deploy, o hook deployment_status novamente é disparado, mas agora com o status success e outro job chamado e2e-tests começa a rodar. O interessante desse job é que a primeira coisa que ele faz é manter o status do commit como pending, porém agora adiciona uma target_url e com isso você consegue navegar diretamente para a URL deste Workflow e ver ele rodando (nota que um link Details apareceu na direita). Após isso, ele irá executar os mesmos passos de quando você roda os testes localmente (npm test) só que agora injetando uma variável de ambiente NODE_ENV='ci' para que o helper server.js não levante o servidor local do Next.js e utilize a Preview URL, que será algo como https://brasilapi-branch.filipedeschamps.now.sh (ao invés do http://localhost:3000).

04-e2e-running-tests

  1. Caso os testes falhem, o passo seguinte do workflow é atualizar o commit com o status failure.

05-e2e-fail

  1. E caso os testes passem com sucesso, o passo seguinte do workflow é atualizar o commit com o status success.

05-e2e-success

E é isso turma! Ainda faltam coisas como criar um workflow caso o deploy da Zeit falhe, mas é bem simples, e também qualquer outra sugestão que será super bem vinda 👍

E a explicação pareceu longa, mas é super simples e eu gostei MUITO do Github Actions porque além de fácil, o nível de integração com todo o ecossistema do Github é impressionante, você consegue disparar workflows para diversos tipos de eventos e manipular qualquer coisa pela API.

Por fim, agradecimento em especial ao @paulogdm que é colaborador da Zeit por me dar o pontapé inicial sobre a Preview URL 🤝

Closes https://github.com/filipedeschamps/BrasilAPI/issues/4

+4336 -169

0 comment

7 changed files

pr created time in 2 days

create barnchfilipedeschamps/BrasilAPI

branch : actions

created branch time in 2 days

issue commentfilipedeschamps/cep-promise

Adicionar função format

Show @SkyaTura a idéia não é fazer o cep-promise ter o BrasilAPI como único provedor, e sim adicionar o BrasilAPI como mais um provider do cep-promise. Só que como de fato o BrasilAPI vai utilizar o cep-promise para o endpoint do cep, no fundo ele vai também fazer uma chamada para si de volta e vai endoidar num loop 😂

E @lucianopf adorei a sugestão!!!!! Realmente gostei! Eu tava com a cabeça presa na instância e não na factory! Eu só retornaria a máscara por default, mas a parte de configurar ali os providers matou a pau!!!!!

dmvvilela

comment created time in 5 days

push eventfilipedeschamps/BrasilAPI

Lucas Eduardo

commit sha 13b051f3fc02936eee99659a20fc5b16a9b148af

habilitando o cors no endpoint cep

view details

Filipe Deschamps

commit sha 16bb349f331cf2db3f94d69e129674f5ab30d734

Merge pull request #28 from lucas-eduardo/enableCors Habilitando o cors no endpoint cep

view details

push time in 5 days

PR merged filipedeschamps/BrasilAPI

Reviewers
Habilitando o cors no endpoint cep

Descrição

  • Foi feito a habilitação do cors para o ZEIT, o mesmo foi testado e foi com sucesso

success

Issue de referencia: https://github.com/filipedeschamps/BrasilAPI/issues/9

Discussões sobre o cors foi feito no PR: https://github.com/filipedeschamps/BrasilAPI/pull/20

+29 -18

2 comments

4 changed files

lucas-eduardo

pr closed time in 5 days

pull request commentfilipedeschamps/BrasilAPI

Habilitando o cors no endpoint cep

Showwww!!! Merging 👍

lucas-eduardo

comment created time in 5 days

issue commentfilipedeschamps/BrasilAPI

Testar PRs com E2E

Um caso importante (porém bastante isolado por se tratar de uma feature em beta) mas que mostra como é possível ter diferenças entre um ambiente local e remoto: https://github.com/zeit/next.js/issues/10598

Por se tratar de uma infraestrutura nova para nós, continuo achando mega importante testarmos o E2E com a URL de preview. Eu to fazendo uma versão desses testes com Jest, ta ficando bem legal e vai servir como comparação/discussão do PR https://github.com/filipedeschamps/BrasilAPI/pull/27 To na marcha lenta por conta do canal mas acho que vai funcionar certinho. Se estiver local, ele testa local, se estiver num PR ele pega a URL do preview 👍

filipedeschamps

comment created time in 5 days

pull request commentfilipedeschamps/BrasilAPI

Habilitação do Cors para o ZEIT

Show @lucas-eduardo !!! Matou a pau na pesquisa!!!

Com o merge do PR que adiciona v1 no endpoint, é necessário você fazer o rebase/resolução de conflito. Se achar mais fácil, pode também fechar esse PR e abrir outro com a última versão 👍

lucas-eduardo

comment created time in 6 days

issue commentfilipedeschamps/BrasilAPI

Versionamento dos endpoints

@mukaschultze vez a implementação no PR https://github.com/filipedeschamps/BrasilAPI/pull/25

Turma vocês são demais!!!!!! 🤝

E aproveitando, @CarlosZiegler o vídeo da semana que vem possivelmente é sobre um link que você compartilhou lá no passado 👍 Esse aqui: https://free-for.dev lembra?

Abração!!!

filipedeschamps

comment created time in 6 days

push eventfilipedeschamps/BrasilAPI

Filipe Deschamps

commit sha d5309ceb8280fcc2d0a4f03cf34a6100345b86b6

readme: adiciona contribuidor Adiciona @mukaschultze

view details

push time in 6 days

push eventfilipedeschamps/BrasilAPI

Muka Schultze

commit sha 5bb2e5af6c4e889e0a0c6cc2ec6a53533e414a96

add api version to url

view details

Muka Schultze

commit sha 112b0f2c8ae93164c9b0919cc34962db55c5fd47

update readme endpoints

view details

Muka Schultze

commit sha 3fea5f5792a64bf13fdf496ba3ade8f153d1fda9

change v1/cep to cep/v1

view details

Filipe Deschamps

commit sha ba65abd8498f761d625ae426bb9cd37148122dcf

Merge pull request #25 from mukaschultze/master feat: add versão na url dos endpoints

view details

push time in 6 days

PR merged filipedeschamps/BrasilAPI

feat: add versão na url dos endpoints

Muda a URL do CEP de https://brasilapi.com.br/api/cep/[cep] para https://brasilapi.com.br/api/v1/cep/[cep]

Closes #12

+3 -5

4 comments

2 changed files

mukaschultze

pr closed time in 6 days

issue closedfilipedeschamps/BrasilAPI

Versionamento dos endpoints

Isso é uma questão extremamente importante... como lidar com a evolução da interface pública e as breaking changes?

Num módulo gerenciado pelo NPM isso é super fácil, a gestão pelo lado de quem consome isso já vem de graça por conta de como o NPM lida com semantic versioning... agora, como fazer numa rota pública que inclusive não pode ter versionamento gerenciado por uma conta/perfil como é feito em casos como Pagar.me e Stripe, dado que não teremos esse conceito de conta?

closed time in 6 days

filipedeschamps

pull request commentfilipedeschamps/BrasilAPI

feat: add versão na url dos endpoints

Matou a pau!!!! E cara, eu to apaixonado pelo auto-deploy do Now, olha isso que legal: https://brasilapi-gxhrv16i6.now.sh/api/cep/v1/05010000

Na lata!!! Merging e adicionando você na lista de contribuidores 👍

mukaschultze

comment created time in 6 days

pull request commentfilipedeschamps/BrasilAPI

Habilitação do Cors para o ZEIT

@lucas-eduardo entendi perfeitamente, show! Então faz sentido combinar o CORS com os verbos no cenário que você falou 👍 Só que se formos fazer essa combinação, não dá para ser através de um arquivo de configuração centralizado, pois cada rota pode expor métodos diferentes.

Agora por curiosidade, o micro-cors faz esse combo de configurar o CORS e acesso aos métodos? A curiosidade veio do nome do parâmetro allowMethods:

const microCors = require('micro-cors')
const cors = microCors({ allowMethods: ['PUT', 'POST'] })
const handler = (req, res) => send(res, 200, 'ok!')
 
module.exports = cors(handler)

O allowMethods é sobre CORS ou sobre tudo? Porque se for o combo dos dois, vai ser uma mão na roda, dai eu faria direto dentro da função do endpoint mesmo, por exemplo esse de consulta de CEP só deveria aceitar o GET. Eu vi alguns exemplos em que colocavam essa lógica dentro do callback principal, não achei legal (apesar de que se um mesmo endpoint aceitar GET e POST não vai ter muito o que fazer).

@lucas-eduardo consegue nos ajudar verificando o que o allowMethods faz de fato?

lucas-eduardo

comment created time in 6 days

issue commentfilipedeschamps/cep-promise

Adicionar função format

Show! Decisão boa! Eu vejo a situação dessa forma (que é um cálculo de tradeoff)

  • Incrementar a interface: isso é algo negativo, é algo a mais para ler na documentação, por exemplo.
  • Receber o cep formatado: isso é algo positivo para quem precisa.

Para o tradeoff acima, acho que o saldo é negativo, pois eu vejo o seguinte cenário:

  • Não incrementar a interface: isso é algo neutro.
  • Receber o cep formatado: isso é algo positivo para quem precisa e neutro para quem não precisa.

Como a máscara pode ser aplicada localmente, não é necessário trafegar isso pela network inclusive, então o custo técnico é muito baixo.

Então ela, sem complicar a interface, pode retornar por padrão:

cep('05010000')
  .then(console.log)

  // {
  //   "cep":  "05010000",
  //   "cepMask1":  "05010-000",
  //   "cepMask2":  "05.010-000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Como o @SkyaTura falou, essas são as possibilidades mais comuns e vejo que se a pessoa cair em um outro formato, ela deve estar fazendo uma coisa muito específica a aplicação dela e essa especificidade deveria ficar apenas na aplicação dela. Do contrário, não vale a pena pagar o custo técnico e de interface+documentação para atender a esse caso específico.

O que acham?

Fora isso, eu estou com um dilema sobre o BrasilAPI porque a idéia é usar o BrasilAPI como provider, mas ele utiliza internamente o cep-promise, ou seja, vai ficar em um loop. Uma das formas que vejo de evitar isso é, pela interface ou de alguma outra forma, definir quais providers ele quer consultar. Se vocês conseguirem pensar em formas de não alterar a interface e evitar esse loop, topam criar uma outra issue para discutir isso?

Abração turma!!! 👍

dmvvilela

comment created time in 6 days

issue commentfilipedeschamps/cep-promise

Função de Debounce

Sem problemas meu caro, e novamente obrigado por se disponibilizar a trazer uma nova feature a biblioteca 🤝

SkyaTura

comment created time in 6 days

pull request commentfilipedeschamps/BrasilAPI

Habilitação do Cors para o ZEIT

Show @lucas-eduardo ! Pela minha compreensão podemos estar falando de duas coisas diferentes: controlar CORS pelo meu entendimento não é a mesma coisa que controlar os "verbos" ou "request methods". Uma rota pode aceitar os métodos GET ou POST, mas recusar todos através do CORS (a API dos correios faz isso, ela aceita GET normalmente, mas sem CORS). Na minha visão, devemos aceitar todos os métodos através do CORS, mas limitar se um endpoint aceita GET, POST, etc.

Se isso for uma verdade, não haverá "configuração" de CORS a não ser habilitar todos para todas as rotas... ficando a cargo da rota decidir quais verbos ela aceita.

Faz sentido?

lucas-eduardo

comment created time in 6 days

issue commentfilipedeschamps/cep-promise

Função de Debounce

Show! Mas reforço meu ponto que a biblioteca irá fazer uma requisição somente no momento que atingir a quantidade exata de caracteres de um CEP de 12345678. Caso ela receba 1 ou 12 ou 123 ela não irá fazer requisições e irá de forma "local" retornar um erro de formatação (sem fazer nenhuma chamada na network).

Por "requisições" você significa requisições pela rede (as chamadas contra os providers)?

SkyaTura

comment created time in 6 days

delete branch filipedeschamps/cep-promise

delete branch : audit-fix

delete time in 7 days

push eventfilipedeschamps/cep-promise

Filipe Deschamps

commit sha a0f09985eb46bee85c4359b6e2bf75a6591435f3

dev-dependencies: update for be compliant with npm audit fix

view details

Filipe Deschamps

commit sha 5c7db833bb745784445d04c3e1fe29c517959c1c

Merge pull request #162 from filipedeschamps/audit-fix dev-dependencies: update for be compliant with npm audit fix

view details

push time in 7 days

PR merged filipedeschamps/cep-promise

dev-dependencies: update for be compliant with npm audit fix

Esse PR é o resultado de rodar no terminal o comando npm audit fix em que ele busca todas as dependências por brechas de segurança. Todas as dependências de produção estão atualizadas, porém para dependências de desenvolvimento (devDependencies) temos vários pacotes que não. Independente disso, o npm audit fix vai diretamente no package-lock.json para fazer bump das versões que encontrar.

Em seguida seria legal fazer o bump manual das devDependencies 👍

+88 -91

1 comment

1 changed file

filipedeschamps

pr closed time in 7 days

pull request commentfilipedeschamps/BrasilAPI

style: update style into home

Show! Minhas sugestões

  • brasil como Brasil
  • api como API
  • Na versão que estamos utilizando do Next.js, você não precisa importar mais coisas como styled-jsx-plugin-postcss ou nada relacionado ao postcss para fazer CSS-in-JS 👍
melquisedecfelipe

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Logs

Ahhhh boaaa, é verdade!!! Topo total testar! Me inscrevi no mailling dele 👍

filipedeschamps

comment created time in 7 days

pull request commentfilipedeschamps/BrasilAPI

Habilitação do Cors para o ZEIT

Sensacional @lucas-eduardo !!!!

Uma pergunta: por simplicidade do código, não seria melhor resolver o CORS por dentro do arquivo mesmo para evitar navegar por múltiplos arquivos? Porque se não formos customizar o CORS de forma geral, eu evitaria criar um arquivo só para retornar a função.

Qual a visão de vocês sobre isso?

lucas-eduardo

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Buscar CEP pelo logradouro

Ah que show!!!! E agora ótima questão: isso primeiro deveria ser implementado em um endpoint separado no BrasilAPI, com cache e tudo mais, e depois utilizado no cep-promise ou outra lib, correto?

edysegura

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Documentaçao da API

Show!!!!!

CarlosZiegler

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Plano de Dados Abertos - Consulta e extração de dados

Sensacional turma!!!!!!!

Gostaria de adicionar algo que também sempre foi um problema para mim, saber se um dia é útil no Brasil. No Pagar.me foi feita essa biblioteca: https://github.com/pagarme/business-calendar e lembroq que foi uma mão na roda!

Como andam esses dados @lucianopf ? Eles continuam sendo atualizados?

jeffVolt

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Versionamento dos endpoints

Que discussão fantástica! E parabéns a todos por embarcarem numa versão tão crua desse repositório! É o estágio mais legal do projeto na minha opinião 👍

Então acho que temos uma conclusão sobre a URL pelo menos (o resto podemos ir incrementando aos poucos).

Vamos então de:

https://brasilapi.com.br/api/cep/v1/[numero]

Alguém aqui encara fazer essa alteração bastante estrutural e histórica para o repositório? Eu sei fazer essa alteração, mas não adicionaria a ninguém eu fazer ela. @lucianopf você também está proibido 😂

Quem topa? 👍

PS: desculpa a demora em responder, o YouTube ta consumindo o tempo de um full time job real, mas ta bem massa 😍

filipedeschamps

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Logs

Vou abrir o coração: tenho vontade de usar o Datadog só por conta do logo 😂

filipedeschamps

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Habilitar CORS no serviço

E pra testar isso turma? Como vamos fazer? 😂 Acho que não vamos ter como escapar de fazer um E2E nervoso usando a URL de preview deles.

lucianopf

comment created time in 7 days

issue commentfilipedeschamps/BrasilAPI

Cache dos dados

Ahhh @lucianopf que sensacional!! Ótimo achado 👍 os caras são muito fera!!!

filipedeschamps

comment created time in 7 days

PR opened filipedeschamps/cep-promise

dev-dependencies: update for be compliant with npm audit fix

Esse PR é o resultado de rodar no terminal o comando npm audit fix em que ele busca todas as dependências por brechas de segurança. Todas as dependências de produção estão atualizadas, porém para dependências de desenvolvimento (devDependencies) temos vários pacotes que não. Independente disso, o npm audit fix vai diretamente no package-lock.json para fazer bump das versões que encontrar.

Em seguida seria legal fazer o bump manual das devDependencies 👍

+88 -91

0 comment

1 changed file

pr created time in 7 days

create barnchfilipedeschamps/cep-promise

branch : audit-fix

created branch time in 7 days

delete branch filipedeschamps/cep-promise

delete branch : add-contributor

delete time in 7 days

push eventfilipedeschamps/cep-promise

Filipe Deschamps

commit sha 8c182ac1e18a82bea1e1b93369557a79af657591

readme: add contributor and fix images width Add @vagnercardosoweb

view details

Filipe Deschamps

commit sha 0b97c759fa211f133a504bbedcdc64d8fb422aa4

Merge pull request #161 from filipedeschamps/add-contributor readme: add contributor and fix images width

view details

push time in 7 days

issue commentfilipedeschamps/BrasilAPI

Persistência dos dados

Show @eedsilva ! Eu conheço muito pouco de blockchain aplicado para isso, se puder me educar no assunto ficaria muito feliz. Entendo ainda menos sobre "smart contract live" e "blockchain 3.0", e como ficaria para atualizar um dado e como distribuir ele de fato.

Minha escolha inicial do FaunaDB veio até da própria sugestão do criador do Next.js, principalmente porque o banco promete se distribuir em várias regiões automagicamente mas claro, mantendo um controle central.

filipedeschamps

comment created time in 7 days

issue commentfilipedeschamps/cep-promise

Função de Debounce

Que massa @SkyaTura parabéns pela implementação meu caro! De fato é algo que pode contribuir! Mas só para entender o cenário: isso é para evitar que chamadas sejam feitas pela network enquanto a pessoa está digitando o CEP? Pergunto isso porque a biblioteca só vai fazer uma chamada quando o valor inserido for válido.

Abração e obrigado por abrir a issue com essa idéia!

SkyaTura

comment created time in 7 days

PR opened filipedeschamps/cep-promise

readme: add contributor and fix images width

Add @vagnercardosoweb

+3 -3

0 comment

1 changed file

pr created time in 7 days

create barnchfilipedeschamps/cep-promise

branch : add-contributor

created branch time in 7 days

push eventfilipedeschamps/cep-promise

Vagner Cardoso

commit sha c8e6db3ca174730104dfba73161381c7c795bf34

feat(WideNet): add new service for zip query

view details

Vagner Cardoso

commit sha 6292307f4dfaeca8bae8d5f9f784a3a1a813366d

Update src/cep-promise.js Co-Authored-By: Luciano Pellacani Franca <lucianopf@outlook.com>

view details

Filipe Deschamps

commit sha 12b01fd1e5e6af2204e191a86281c5bf319f3576

Merge pull request #159 from vagnercardosoweb/feat/widenet feat(WideNet): add new service for zip query

view details

push time in 7 days

PR merged filipedeschamps/cep-promise

feat(WideNet): add new service for zip query

Adiciona novo serviço para busca de cep.

Exemplo Cep: 05010000

+629 -258

8 comments

13 changed files

vagnercardosoweb

pr closed time in 7 days

pull request commentfilipedeschamps/cep-promise

feat(WideNet): add new service for zip query

Showwww turma!! Voltei!! Que fantástico ver mais um provider implementado!!!! Ótima discussão e merging com certeza 🤝 👍

vagnercardosoweb

comment created time in 7 days

pull request commentfilipedeschamps/BrasilAPI

updating gitignore file to avoid vscode folder

Boaaaa!!! Vamos detonar 🤝

evertoncastro

comment created time in 10 days

pull request commentfilipedeschamps/BrasilAPI

[feat] new index page

Showww!! Ta lá 👍

rafamancan

comment created time in 10 days

PR merged filipedeschamps/BrasilAPI

Reviewers
[feat] new index page

Creating new basic index page.

+124 -80

5 comments

2 changed files

rafamancan

pr closed time in 10 days

push eventfilipedeschamps/BrasilAPI

rmancan

commit sha c35367be326f9449cf031a3631d3d38c72f91b12

new index page

view details

rmancan

commit sha 5d9274631278270e5f252be05348ccda70ee0701

remove assets files and using styling jsx

view details

Filipe Deschamps

commit sha 704746b475ff2bd476b80d5ea9d92f01dfa42038

Merge pull request #18 from rafamancan/feature/new-index-page home: new index page

view details

push time in 10 days

push eventfilipedeschamps/BrasilAPI

Filipe Deschamps

commit sha 3742e3e5380b0e38c403d319762fa2be1e0c9777

readme: adiciona contribuidor Contribuidor adicionado: @evertoncastro

view details

push time in 10 days

pull request commentfilipedeschamps/BrasilAPI

updating gitignore file to avoid vscode folder

Boa! De pouco em pouco vamos deixar esse repo um brilho!!!!! Adicionando você nos contribuidores 👍

evertoncastro

comment created time in 10 days

push eventfilipedeschamps/BrasilAPI

evertoncastro

commit sha 37303cafb3692f42ad46d922bc26deac6eaf6953

updating .gitignore file to avoid /vscode folder

view details

Filipe Deschamps

commit sha d43ede0806d05548efaf1521cbda3affdd4580de

Merge pull request #19 from evertoncastro/feat-everton updating gitignore file to avoid vscode folder

view details

push time in 10 days

pull request commentfilipedeschamps/BrasilAPI

Custom server para habilitar o cors

Show! 👍

lucas-eduardo

comment created time in 10 days

push eventfilipedeschamps/BrasilAPI

Filipe Deschamps

commit sha 1d8d7e6ae4ce99d83f9a84448954c37fb5d4201e

readme: adiciona contribuidor Contribuidor adicionado: @eliseumds

view details

push time in 11 days

pull request commentfilipedeschamps/BrasilAPI

cep: explicação dos valores de Cache-Control

Matou a pau!!! Merged e estou adicionando você como contribuidor no README 👍 🤝

eliseumds

comment created time in 11 days

push eventfilipedeschamps/BrasilAPI

Eliseu Monar dos Santos

commit sha cd8fb420a9c6e71169c43d6367c7d3b8c771b88a

cep: explicação dos valores de Cache-Control

view details

Eliseu Monar dos Santos

commit sha e78ce15a89d895ee0426887dcb11b14ed16a3fe7

cep: typo /s/decidade/decida

view details

Eliseu Monar dos Santos

commit sha c8595ea0ae85af431c0d2a5a44f145770d51fe05

cep: refactor pra melhorar legibilidade

view details

Filipe Deschamps

commit sha f5be809344d9b8435fe1ef5dd136f42e3f3ad8b2

Merge pull request #16 from eliseumds/patch-1 cep: explicação dos valores de Cache-Control

view details

push time in 11 days

push eventfilipedeschamps/BrasilAPI

Filipe Deschamps

commit sha d3404da71ce9fbb67a279800a3ac1b1d57df18b7

readme: adiciona contribuintes Contribuintes adicionados: @OtavioCapila @rafamancan @lucas-eduardo

view details

push time in 11 days

issue commentfilipedeschamps/BrasilAPI

Habilitar CORS no serviço

Showww @OtavioCapila !! Eu não sei qual os padrões dos projetos nesse caso, sou super novo no framework, mas me parece mais previsível para evolução do framework fazer manualmente em cada endpoint ou nas configs 👍 Mas muito legal a sua sugestão e dentro de um ecossistema Node.js normal isso faz sentido 🤝 Vou lhe adicionar como contribuidor, pois querendo ou não, isso é colocar a mão na massa!

lucianopf

comment created time in 11 days

issue commentfilipedeschamps/BrasilAPI

Habilitar CORS no serviço

Show!!! Eu comentei algo importante lá no seu PR 👍

lucianopf

comment created time in 11 days

pull request commentfilipedeschamps/BrasilAPI

[feat] new index page

E para lembrança, vou deixar um print aqui da primeira versão da Home 😂

brasil-api

rafamancan

comment created time in 11 days

pull request commentfilipedeschamps/BrasilAPI

Custom server para habilitar o cors

@lucas-eduardo que SENSACIONAL sua contribuição, muito bom mesmo!!! De qualquer forma, infelizmente a feature do custom server pelo que estou lendo vai ficar uma coisa do passado, até porque cada vez mais o Nextjs nativo com o Now vão ficar entrelaçados para conseguir explorar melhor a natureza serverless.

Tem um post na comunidade deles chamado Is the Custom Server feature of Next.js going to be deprecated? que tem a resposta de um membro falando sobre isso:

image

Então não vamos conseguir seguir com esse PR, de qualquer forma, eu vou lhe adicionar como contribuidor do projeto porque a sua atitude matou a pau, inclusive porque seu PR abriu a oportunidade para mostrar o que está acontecendo com o custom server para outras pessoas acompanharem também, fechado? 👍

lucas-eduardo

comment created time in 11 days

pull request commentfilipedeschamps/BrasilAPI

[feat] new index page

Que sensacionaaaal!!!! O legal do Next + Now é o fato de gerar uma URL de preview automaticamente desse PR, não precisa nem mais tirar print: https://brasilapi-git-fork-rafamancan-feature-new-index-page.filipedeschamps.now.sh/

Sobre a parte técnica do PR: pelo que vi, na versão do Next que estamos utilizando não é mais necessário importar o @zeit/next-css, acho que isso vai ficar no passado. Dá agora para estilizar diretamente utilizando CSS in JS como instruído aqui: https://nextjs.org/learn/basics/styling-components

E dado a simplicidade do estilo, vai cair como uma luva, o que acha?

rafamancan

comment created time in 11 days

issue commentfilipedeschamps/BrasilAPI

Versionamento dos endpoints

Deu total @kevenleone show!!!!

No caso da interface do cep-promise, eu tentaria ao máximo "esmagar" as breanking changes dos providers para tentar manter a mesma interface (como inclusive fazemos hoje com os atuais providers, dado que cada um expõe sua interface de uma forma diferente e nós normalizamos numa única interface). De qualquer forma, como o cep-promise é um módulo npm, eu sugiro fazer o semantic versioning pelo package.json... e fica na lib a responsabilidade de atualizar os endpoints dos providers que ela usa.

Agora sobre a interface do Brasil API, eu gosto da sua segunda sugestão de colocar na rota, pois isso facilita muito consumir o endpoint direto pelo navegador ou por qualquer outro client. Você vê algo contra usar a mesma estratégia do semantic version na URL ao invés de v1, v2? Por exemplo:

/api/cep/1.0.0/05010000

Dois pontos:

  1. Assim no histórico dos endpoints você tem a informação se ela é patch, minor ou major (breaking change). Inclusive, pensando melhor, não deveria precisar mudar a URL para patches ou minors, voltando então a sua idéia 😂 mas continuando:
  2. Nota que eu coloquei o versionamento depois do /cep porque com isso cada serviço pode ter sua versão.

E ao final, poderíamos ter uma lib genérica brasilapi como a AWS faz com seus endpoints, por exemplo. O que acha?

filipedeschamps

comment created time in 14 days

issue commentfilipedeschamps/BrasilAPI

Testar PRs com E2E

@mukaschultze muito obrigado por entrar na conversa meu caro 🤝 👍

Tem um problema nisso, se o ambiente de produção for modificado e quebrar algo todos os PRs vão começar a acusar erro,

Excelente ponto! Mas na verdade já vi ao contrário, o ambiente de staging quebrar e o ambiente de produção estar funcionando corretamente. O que eu gostaria de forçar o ambiente da ZEIT por que lá não existe diferença no ambiente de Staging e Production, a única diferença que eu percebo é a tag, a classificação, pois é exatamente a mesma infraestrutura, o que muda é o apontamento do DNS. A URL de "staging" é tão produção quanto a URL de "production".

Então apesar de eu me preocupar com diferenças entre ambientes, eu queria testar exatamente isso na infra da ZEIT, que não há diferença.

Agora, uma preocupação interessante e relacionada a isso é se um endpoint depende de um serviço externo e esse serviço modificar a interface ou quebrar.

O que me fez pensar em outra coisa MUITO IMPORTANTE que acabei de criar uma issue para isso: https://github.com/filipedeschamps/BrasilAPI/issues/12

filipedeschamps

comment created time in 14 days

issue openedfilipedeschamps/BrasilAPI

Versionamento dos endpoints

Isso é uma questão extremamente importante... como lidar com a evolução da interface pública e as breaking changes?

Num módulo gerenciado pelo NPM isso é super fácil, a gestão pelo lado de quem consome isso já vem de graça por conta de como o NPM lida com semantic versioning... agora, como fazer numa rota pública que inclusive não pode ter versionamento gerenciado por uma conta/perfil como é feito em casos como Pagar.me e Stripe, dado que não teremos esse conceito de conta?

created time in 14 days

push eventfilipedeschamps/BrasilAPI

Filipe Deschamps

commit sha 79eb9363776b6a7895e9d607b11a5bd62187dd80

readme: adiciona @kevenleone como contribuidor

view details

push time in 14 days

pull request commentfilipedeschamps/BrasilAPI

feat: adicionado cypress e criado alguns casos de testes #4

Sensacional @kevenleone !! Eu quero analisar com calma ao longo da semana, até porque nunca usei o Cypress, mas de qualquer forma, vou lhe adicionar na lista dos contribuidores porque sua postura foi fantástica, entrou num repositório super novo, deu sua sugestão, implementou o PR rapidamente para ver como isso fica aplicado na parte prática, e pra mim isso vale tudo 👍

kevenleone

comment created time in 14 days

issue commentfilipedeschamps/BrasilAPI

Persistência dos dados

@eedsilva interessante! Você poderia esclarecer um pouco mais essa idéia?

filipedeschamps

comment created time in 14 days

issue closedfilipedeschamps/cep-promise

Adicionar ao README.md comando de instalação pelo Yarn

Olá!

Acho a lib sensacional! Vocês poderiam colocar o comando para instalação via Yarn no README.md. :)

closed time in 14 days

lokinmodar

issue commentfilipedeschamps/cep-promise

Adicionar ao README.md comando de instalação pelo Yarn

@lokinmodar fez o PR https://github.com/filipedeschamps/cep-promise/pull/158 e está merged!

Parabéns eu caro 👍

lokinmodar

comment created time in 14 days

push eventfilipedeschamps/cep-promise

Dante Souza e Souza

commit sha ad05e65e2d7dc2a41ff1dd963396e4f4ee8b5052

Adicionado comando para instalação via Yarn

view details

Filipe Deschamps

commit sha 6dd80a3fd839ccbf3f11c51f87125d105103d5e0

Merge pull request #158 from lokinmodar/melhorias_readme Adicionado comando para instalação via Yarn

view details

push time in 14 days

PR merged filipedeschamps/cep-promise

Adicionado comando para instalação via Yarn

O pacote já está na base do Yarn em https://yarn.pm/cep-promise. Só adicionei o comando ao README.md.

+5 -0

1 comment

1 changed file

lokinmodar

pr closed time in 14 days

issue commentfilipedeschamps/BrasilAPI

Testar PRs com E2E

Showwww @kevenleone Qualquer contribuição é bem vinda e, sendo aprovada ou não, estamos num estágio agora de projeto que quanto mais alternativas tivermos de código aplicado em mãos para conseguir comparar e conversar, melhor! 😍 👍

filipedeschamps

comment created time in 14 days

PublicEvent

issue commentfilipedeschamps/cep-promise

Adicionar ao README.md comando de instalação pelo Yarn

Show @lokinmodar ! Desafio para você: mandar um PR de como você acredita que ficaria legal o README com essa informação 👍

lokinmodar

comment created time in 14 days

issue commentfilipedeschamps/cep-promise

Código IBGE

@olavorn bom ponto! Isso é uma informação que conseguimos garantir com todos os providers?

olavorn

comment created time in 21 days

issue commentfilipedeschamps/cep-promise

Failed to load resource: Request header field Content-Type is not allowed by Access-Control-Allow-Headers.

Show! Esse é o comportamento esperado 🤝 Dado que ele tenta os dois em paralelo, o dos correios vai dar problema, mas com a garantia de que o Viacep vai funcionar 👍 e eu e o @lucianopf estamos trabalhando num terceiro provider com um monte de melhorias, dai o negócio vai ficar massa!

nncl

comment created time in 21 days

pull request commentfilipedeschamps/meu-primeiro-jogo-multiplayer

Colidindo players, novos skins, som

Fala meu caro! Desculpa a demora em retornar, correria do canal :) estamos quase lá para fazer o merge desse PR, só falta você desfazer essas alterações que ainda movem arquivos de um experimento para o outro, olha só:

image

image

image

image

image

E esses que removeram o conteúdo:

image

O jeito mais fácil de consertar:

Minha sugestão é: mova ou faça uma cópia da pasta do seu experimento para fora do repositório, algo realmente seguro. Depois disso, entre na master e resete o repositório git fetch && git reset --hard origin/master ... depois crie uma nova branch e mova aquela pasta do seu experimento para dentro.

Atenção: Caso esteja usando o Gitpod, tome cuidado para não resetar o ambiente inteiro e perder as alterações.

doriclaudino

comment created time in 21 days

delete branch filipedeschamps/cep-promise

delete branch : update-dependency

delete time in a month

push eventfilipedeschamps/cep-promise

Filipe Deschamps

commit sha 54eab2b4fcfb70408d8e23fc1cff39097c575c25

chore: update non dev-dependency `isomorphic-unfetch` We should also bump all dev-dependencies, but for now since there's only one non dev-dependency we should always keep it updated.

view details

Filipe Deschamps

commit sha 17770cb9eec1afe942d28781da3e0d80593e6fb1

Merge branch 'master' into update-dependency

view details

Filipe Deschamps

commit sha f5970cd4de6330f9b80f27f4faaf8a1033a361ef

Merge pull request #146 from filipedeschamps/update-dependency chore: update non dev-dependency `isomorphic-unfetch`

view details

push time in a month

PR merged filipedeschamps/cep-promise

chore: update non dev-dependency `isomorphic-unfetch`

We should also bump all dev-dependencies, but for now since there's only one non-dev-dependency we should always keep it updated.

+42 -53

3 comments

2 changed files

filipedeschamps

pr closed time in a month

issue commentfilipedeschamps/cep-promise

Adicionar função format

Fala pessoal! Show essa idéia! Minha sugestão seria retornar isso no response para evitar breaking change, algo como:

cep('05010000')
  .then(console.log)

  // {
  //   "cep":  "05010000",
  //   "cepFormatted":  "05.010-000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Um dos downsides que consigo pensar é se a pessoa só precisar formatar um cep sem querer fazer a consulta (apesar de que esse não é o use case da biblioteca).

O que acham?

dmvvilela

comment created time in a month

issue closedfilipedeschamps/cep-promise

Muitos erros no console.

Quando uma requisição retorna falha de algum dos serviços, o console fica cheio de erros.

image

O catch tá pegando legal e só está sendo chamado quando todos estão com erro, conforme previsto. Só gostaria de deixar o console limpo, visto que não é muito profissional colocar em produção um produto cheio de erros aparecendo pro usuário.

Poderia ter uma opção para desabilitar esses logs em produção?

closed time in a month

klawdyo

issue commentfilipedeschamps/cep-promise

Muitos erros no console.

Pessoal, estou fechando essa issue após o lançamento do cep-promise@3.0.9 mas qualquer coisa sintam-se livres em reabrir ela caso o problema persista 👍

klawdyo

comment created time in a month

issue closedfilipedeschamps/cep-promise

[Off-Topic] CEP Promise PHP

Projeto incrível!

Estávamos precisando de um pacote que fizesse as requisições concorrentemente em nosso backend em PHP, porém não encontramos nada satisfatório. Tomei a liberdade de criar um pacote para PHP inspirado no CEP Promise. A única coisa que ainda não consegui reproduzir foram os mocks das requisições para efetuar os testes de unidade. No mais, preciso dar uma melhorada no README adicionando as instruções de uso.

A quem interessar, aqui está o link do projeto: claudsonm/cep-promise-php.

closed time in a month

claudsonm

issue commentfilipedeschamps/cep-promise

[Off-Topic] CEP Promise PHP

Vou fechar essa issue, e fique de olho num serviço de cep que queremos levantar para adicionar como um dos seus providers 🤝

claudsonm

comment created time in a month

issue closedfilipedeschamps/cep-promise

Erro de CORS

POST https://proxier.now.sh/https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente net::ERR_ABORTED 502 add:1 Access to fetch at 'https://proxier.now.sh/https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

closed time in a month

quinhone

issue commentfilipedeschamps/cep-promise

Erro de CORS

Pessoal, o @lucianopf acabou de publicar a versão cep-promise@3.0.9 que remove o Proxier do Viacep e todas essas chamadas irão funcionar normalmente, via browser ou server. Vou fechar a issue por enquanto mas qualquer problema, só reabrir 👍

quinhone

comment created time in a month

issue commentfilipedeschamps/cep-promise

CORS (de novo) - Preflight: Redirect is not allowed for a preflight request.

Pessoal, o @lucianopf acabou de lançar uma nova versão que remove o proxier do Viacep. Peço que utilize a versão 3.0.9. Vou fechar a issue por enquanto, mas caso o problema continue vamos reabrir e o plano de fazer um serviço próprio de cep continua, eu preciso apenas engatar umas coisas no canal para colocar esse projeto no ar 👍

welderlourenco

comment created time in a month

issue closedfilipedeschamps/cep-promise

CORS (de novo) - Preflight: Redirect is not allowed for a preflight request.

Olá, estou tendo um problema dificil de debugar. Utilizava Webpack, porém, o mesmo acontece incorporando o script do cdn mencionado na documentação. Em todos as chamadas cep() que faço, recebo um erro de cors preflight...

Mensagens de erro no console:

Access to fetch at 'https://proxier.now.sh/https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente' from origin 'http://meusitelocal.com.br' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

Access to fetch at 'https://proxier.now.sh/https://viacep.com.br/ws/14940000/json/' from origin 'http://meusitelocal.com.br' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

Uncaught (in promise) CepPromiseError: Todos os serviços de CEP retornaram erro.
    at new r (https://cdn.jsdelivr.net/npm/cep-promise/dist/cep-promise.min.js:1:4716)
    at P (https://cdn.jsdelivr.net/npm/cep-promise/dist/cep-promise.min.js:1:3546)

Aba Network:

Screenshot from 2019-11-30 09-29-59

Todos os requests possuem o status 308. Não entendo pois o proxy veio para resolver o problema de CORS, como pode ser que isso acontece?

Observe o header 'location' do status 308 do ViaCep... não sei se significa algo. Screenshot from 2019-11-30 09-38-53

Obrigado desde já pela ajuda.

closed time in a month

welderlourenco

issue commentfilipedeschamps/cep-promise

Failed to load resource: Request header field Content-Type is not allowed by Access-Control-Allow-Headers.

@nncl por favor, você poderia testar na versão cep-promise@3.0.9? 👍

nncl

comment created time in a month

issue closedfilipedeschamps/cep-promise

Erro de cors em todas as chamadas

Todas as chamadas estão dando erro de cors Capturar

closed time in a month

quinhone

issue commentfilipedeschamps/cep-promise

Erro de cors em todas as chamadas

@quinhone por favor utilize a versão cep-promise@3.0.9 com a alteração do @lucianopf que vai funcionar 👍

quinhone

comment created time in a month

push eventfilipedeschamps/cep-promise

lucianopf

commit sha 4e342d3a06ee4763e09f4a0db1705de748984376

proxy: update proxy url

view details

lucianopf

commit sha 0055e9fa861e730a7fd45089049b045bd10de317

chore: bump build

view details

Filipe Deschamps

commit sha bcb917c0a9a19cff1872d66cc427b03a27925ba1

Merge pull request #150 from filipedeschamps/encode-proxy-url Fix proxy logic that enables usage within the browser

view details

Filipe Deschamps

commit sha a070ec626ffbb18d8e0da0f985685574a8db75c3

3.0.8

view details

lucianopf

commit sha b937055c642f5a1a8222fcded709f37364e07bea

viacep: remove cors proxy

view details

lucianopf

commit sha cdfa332516053905ad75c74ce479522822388fcb

chore: bump dist

view details

Filipe Deschamps

commit sha a1ae6f85c73eebaf80433e839ab301631cf4ab89

Merge pull request #156 from filipedeschamps/remove-proxier-from-viacep Remove proxy de CORS do serviço ViaCep

view details

Filipe Deschamps

commit sha c244b92513940dbc05b6c5bf808c08d3e7500aaa

3.0.9

view details

Filipe Deschamps

commit sha 17770cb9eec1afe942d28781da3e0d80593e6fb1

Merge branch 'master' into update-dependency

view details

push time in a month

more