Como passar a data na solicitação GET angular 8

Oct 22 2020

Quero passar a data no angulo 8 $ http Get request. Por favor, me sugira qual é a maneira correta de passar a data.

eu quero fazer algo assim

public getCalendarData(Date): any {
        let myResponse = this.http.get(`${environment.BASE_URL}/getCalendarData` + '/' + new Date().toUTCString(), {
            headers: new HttpHeaders().set('SESSION-TOKEN', localStorage.getItem('jwt_token'))
        });
        console.log(myResponse);
        return myResponse;
    }

Tenho que integrar esta API https: // api / getCalendarData / 20-10-2020 com angular mas não sei como passar data em angular 8 $ http Get request,

Respostas

1 code-gorilla Oct 22 2020 at 16:27

Esta é a aparência do seu url com a implementação atual:

<BASE>/getCalendarData/Thu, 22 Oct 2020 09:18:59 GMT

Certamente não é ideal, pois o url contém espaços em branco e uma vírgula.

Eu prefiro propor passar um timestamp para o seu back-end:

const timestamp = Date.parse(new Date())

Então, seu url ficaria assim:

<BASE>/getCalendarData/1603358349000

Como @MoxxiManagarm mencionou, outra opção seria enviar a data em um parâmetro de consulta obrigatório, que ficaria assim:

<BASE>/getCalendarData?timestamp=1603358349000

Acho que isso é melhor, porque o uso da variável de caminho sugere que há um uso concreto para cada data única - o que provavelmente não existe.

Outra opção seria enviar uma solicitação POST, pois pode conter um corpo, no qual você pode formatar a data da maneira que quiser. Obviamente, isso não está em conformidade com o REST, mas pode ser uma solução pragmática por enquanto.