2
respostas

Chamada de API passando um parâmetro na URL com ponto(.)

Galera, eu to precisando fazer uma chamada em uma API passando alguns parametros, o problema é que um desses parametros tem que ir na url no seguinte formato: ...url?endereco.cep=123&...

exemplo de objeto:

 let params = {
        endereco: {
            rua: "rua dos blas",
            cep: 123
        },
        cargo: desenvolvedor,
        idade: 22
    }

quando eu envio esse objeto ele não coloca dessa forma na url endereco.cep=123 ele meio que encoda, coloca uns % e etc... Eu to usando o Axios pra fazer essas chamadas na API...

Eu não tenho muita experiencia, pesquisei bastante e não sei ao certo se essa API ta errada ou se é possível fazer essa chamada via JS, convertendo de alguma forma o objeto ou alguma coisa do tipo.

Essa API recebe o parâmetro dessa forma porque ela interpreta como uma classe que contem um objeto como atributo.

2 respostas

Olá Maxwel, tudo bem?

O que você está citando parece ser o envio de uma requisição GET.

Quando você envia uma requisição via GET os parametros são codificados junto a URL da requisição, fazendo com que determinados caracteres como espaços, barras, etc, sejam trocados por %algumacoisa.

Neste caso se precisa manter o seu JSON de forma integral e sua API aceitar o melhor seria enviar ele via POST.

Ao enviar via POST você pode enviar o JSON como corpo da requisição.

Acredito que a ideia do Rafel seja a mais adequada mesmo, mando no corpo da requisição de uma post você tem total liberdade quanto ao formato do objeto enviado