Como o TabNews Armazena as Postagens?
Alguém tem algum norte de como o tabNews armazena suas postagens e indexa tudo pro usuário? Não tenho muita experiência com esse tipo de projeto, mas inicialmente me lembra bastante o reddit.
Fiquei teorizando se eles armazenavam tudo em arquivos estilo JSON - principalmente pq o dchamps falou que a plataforma foi desenvolvida encima de uma API Publica -
Algo nesse estilo:
-
O usuário escreve todo o seu POST
-
Ao enviar, o site salva diretamente na API com as informações do post: conteudo,nome usuario, etc.
-
A partir desse ponto todas as outras páginas apenas trabalham com esses dados da API: Mais recentes, Mais relevantes. Ou até mesmo a página da postagem em si
Não sei se faz muito sentido. Mas essa foi minha teoria hshahahsa :
Tentando simplificar ao máximo, ja que disse não ter muito conhecimento com esse tipo de projeto...
Salva em um banco de dados (Postgres), em uma tabela content
. Tanto a publicação quanto o comentario, em registros separados.
Podemos então chamar os dois de content
.
Quando você faz um post novo voce cria um content
e cada content
tem um id
.
Quando voce comenta em alguma postagem, voce também está criando um content
, porém esse tem uma informação a mais, o parent_id
, que se refere a outro content
.
Então na pagina inicial é listada todos os content
que não tem um parent_id
, ja que contents sem um "pai" são independentes, então a lógica considera que é conteudo principal de uma árvore de conteúdos. E pra trazer o resto da árvore, dentro da pagina do post é listado todos os content
em que o parent_id
seja igual ao id
da postagem que voce entrou.
O JSON
é gerado apartir do resultado dessa consulta do banco.
Curiosidade:
Voce pode acessar o JSON
colocando /api/v1/contents/
na frente da url do site.
Ex. Seu post: https://www.tabnews.com.br/api/v1/contents/gr4y/como-o-tabnews-armazena-as-postagens
Os comentários do seu post: https://www.tabnews.com.br/api/v1/contents/gr4y/como-o-tabnews-armazena-as-postagens/children
Não cheguei a ver, mas imagino que seja estutura JSON mesmo. Também imagino que tenha a propriedade "comments", que seria um array de objetos, cada objeto seria o comentário de um usuário, onde dentro desse objeto novamente teria o "comments" que seria a resposta de um comentário.
o tabnews armazena as postagens no banco de dados (postgres)