Data em Angular - Typescript | Angular parte 3: upload, build e novos componentes | Alura - Cursos online de tecnologia
Data em Angular - Typescript
Angular parte 3
Referente ao curso Angular parte 3: upload, build e novos componentes, no capítulo Upload de fotos e atividade Obtendo os dados do formulário
Rithyelle da Silva Costa
(507.5k xp, 56 posts)
Possuo um backendem Java, JAX-RS(Wildfly 13) com Jackson . A maioria esmagadora das minhas entidades possuem campos de data, utilizo LocalDate e LocalDateTime, por esse fato, acabei criando Serializers e Deserializers no Jackson pra poder trafegar os JSONs do backend pro frontend e vice e versa.
Data serializada: 1541351240309
Data deserializada: '2018-11-04 15:07:35'
Acontece que meu frontend, que é em Angular, ao receber essa data, não recebe um objeto do tipo javascript Date, visto que é um miliseconds, pra eu ter acesso ao objeto do tipo Date, preciso criar uma classe TypeScript e um parser pra receber o miliseconds e transformar em um Date. Fiz da seguinte maneira:
Recebo no Front o seguinte JSON:
birthday: 1541351240309
recebo no serviço e faço um parser pra uma classe com o tipo Date da seguinte maneira:
private birthday: Date;
constructor(name:string, birthday: Date){
export class PersonJsonParser {
getPersonByJson(personJson){
personJson.name,
new Date(personJson.birthday)
//no meu service, utilizo da seguinte maneira;
private personJsonParser: PersonJsonParser){
getPerson(){
this.http.get<Person>(...)
.pipe(map(personJson => this.personJsonParser.getPersonByJson(personJson)))
Acontece que essa solução que desenvolvi achei muito verbosa, visto que em basicamente todas as minhas requisições preciso estar fazendo esses pipe(map) e criando esses JsonParsers. Já virou até um padrão do meu projeto.
Gostaria de saber se essa é a melhor solução ou se existe uma solução melhor de resolver esse problema com datas.
Tenho liberdade de tanto alterar a abordagem utilizada no backend como no frontend.
(2049.2k xp, 3838 posts)
Não se preocupe muito se o código está com muitas palavras. Se preocupe mais com o tempo de resposta, se isso está deixando a execução lenta então mude, se não está deixando lento então eu não vejo o porque de não utilizar.
O problema não é ter muitas palavras, só gostaria se não existe uma maneira melhor de resolver essa situação.
Não existe melhor ou pior. Existe o compila e o não compila. Fica lento ou fica rápido. Fica difícil de ler o código e fácil de ler o código. Não acho seu código verboso demais.