PostmonAPI / postmon

Uma API para consulta de informações relacionadas a endereçamento e entrega no Brasil.
http://www.postmon.com.br
GNU General Public License v3.0
657 stars 81 forks source link

Bug: Retorno JSON diferente dependendo do cep #166

Closed filipebezerra closed 7 years ago

filipebezerra commented 7 years ago

Eu percebi que dependendo do CEP pesquisado, o retorno pode vir com logradouro e com outros CEPs vem com endereço.

Alias quando o retorno vem com endereço vem duplicado com endereco (sem o cedilha).

Exemplo retornando endereço:

http://api.postmon.com.br/v1/cep/69945970

{
  "bairro": "Centro",
  "cidade": "Acrelândia",
  "endereço": "Avenida Paraná 296",
  "unidade": "AC Acrelândia",
  "estado_info": {
    "area_km2": "164.123,712",
    "codigo_ibge": "12",
    "nome": "Acre"
  },
  "cep": "69945970",
  "cidade_info": {
    "area_km2": "1807,948",
    "codigo_ibge": "1200013"
  },
  "endereco": "Avenida Paraná 296",
  "estado": "AC"
}

Exemplo retornando logradouro:

http://api.postmon.com.br/v1/cep/74377285

{
  "bairro": "Villar Baviera",
  "cidade": "Goiânia",
  "cep": "74377285",
  "logradouro": "Rua B 10",
  "estado_info": {
    "area_km2": "340.110,385",
    "codigo_ibge": "52",
    "nome": "Goiás"
  },
  "cidade_info": {
    "area_km2": "728,841",
    "codigo_ibge": "5208707"
  },
  "estado": "GO"
}

Dessa forma tenho problemas consumindo numa aplicação Android usando Retrofit com a classe mapeada com anotação do GSON.

iurisilvio commented 7 years ago

O endereco/endereço é por questão de compatibilidade. Use endereco sem a cedilha, em alguma versão futura o endereço vai ser removido. A mudança foi feita para evitar problemas de unicode (#113).

logradouro e endereco são informações distintas. O endereço é retornado principalmente para o caso dos CEPs especiais (final > 900). É assim que os Correios retornam.

Os formatos esperados estão documentados aqui: https://github.com/PostmonAPI/postmon/wiki/Retorno-da-API

filipebezerra commented 7 years ago

Obrigado @iurisilvio, então eu devo esperar pelo logradouro ao mapear minha classe, para os casos especiais.

iurisilvio commented 7 years ago

Na verdade o mais comum é o logradouro, o caso especial é o endereco. :)

De qualquer forma, espere os dois casos.