Como passar a data na solicitação GET angular 8
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
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.