Aqui você encontrará detalhes da API que você deve usar na sua implementação. Ela é uma API REST pública e está disponível no endereço a seguir:
https://taggram.herokuapp.com
Informa os dados de um usuário. É ele que aparece na barra do topo da página e deverá ser o autor das curtidas feitas.
Um usuário aleatório.
Exemplo
{
"username": "Mervin.Crooks11",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/stayuber/128.jpg"
}
Informa os dados de uma publicação. Ela deve ser exibida no centro da página.
Se algum campo obrigatório não for informado ou possuir um valor inválido a API retorna um erro.
Campo | Requerido | Tipo | Sobre |
---|---|---|---|
username | Sim | String | Username do usuário atual obtido em GET /me |
Uma publicação aleatória.
Exemplo
{
"uuid": "f198e91a-1819-4da1-b7af-80a3aa9f3c90",
"user": {
"username": "Tremaine43",
"avatar": null
},
"photo": "https://source.unsplash.com/random/800x800",
"created_at": "17/8/2021 - 13:55",
"location": {
"city": "Robertsberg",
"country": "Kyrgyz Republic"
},
"comments": [
{
"uuid": "f53c17e6-1d34-4b16-9e63-ad05d7d67064",
"user": {
"username": "Cali83",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/cyril_gaillard/128.jpg"
},
"message": "We need to transmit the auxiliary IB port!",
"created_at": "9h",
"has_liked": true,
"like_count": 2
}
]
}
Informa a lista de publicações relacionadas, deve ser exibida em "mais publicações". {postUUID}
é o uuid
da publicação exibida.
Uma lista de publicações relacionadas.
Exemplo
[
{
"uuid": "fae06f51-1f20-473f-b0db-48f5c54c6ad1",
"photo": "https://source.unsplash.com/random/800x800",
"commentCount": 0
},
{
"uuid": "86be3283-6014-4cc2-ac07-eb73cdd1fc26",
"photo": "https://source.unsplash.com/random/800x800",
"commentCount": 4
},
{
"uuid": "34aef4b8-5c9e-4ab3-89fb-a5b962ac6ee1",
"photo": "https://source.unsplash.com/random/800x800",
"commentCount": 2
}
]
Adiciona uma curtida em um comentário. {commentUUID}
é o uuid
do comentário selecionado.
Esse endpoint retorna um erro intencionalmente algumas vezes, você deve tratar esse erro como está especificado nos requisitos. Porém, durante o desenvolvimento você pode forçar que os erros deixem de ser lançados utilizando o parâmetro
force
:POST /comments/*{commentUUID}*/like?force=true
.
Deve seguir o formato application/json
. Se algum campo obrigatório não for informado ou possuir um valor inválido a API retorna um erro.
Campo | Requerido | Tipo | Sobre |
---|---|---|---|
username | Sim | String | Username do usuário adicionando a curtida |
Exemplo
{
"username": "Brielle48"
}
O comentário atualizado.
Exemplo
{
"uuid": "f53c17e6-1d34-4b16-9e63-ad05d7d67064",
"user": {
"username": "Cali83",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/cyril_gaillard/128.jpg"
},
"message": "We need to transmit the auxiliary IB port!",
"created_at": "9h",
"has_liked": true,
"like_count": 2
}
Remove uma curtida em um comentário. {commentUUID}
é o uuid
do comentário selecionado.
Esse endpoint retorna um erro intencionalmente algumas vezes, você deve tratar esse erro como está especificado nos requisitos. Porém, durante o desenvolvimento você pode forçar que os erros deixem de ser lançados utilizando o parâmetro
force
:POST /comments/*{commentUUID}*/unlike?force=true
.
Deve seguir o formato application/json
. Se algum campo obrigatório não for informado ou possuir um valor inválido a API retorna um erro.
Campo | Requerido | Tipo | Sobre |
---|---|---|---|
username | Sim | String | Username do usuário removendo a curtida |
Exemplo
{
"username": "Brielle48"
}
O comentário atualizado.
Exemplo
{
"uuid": "f53c17e6-1d34-4b16-9e63-ad05d7d67064",
"user": {
"username": "Cali83",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/cyril_gaillard/128.jpg"
},
"message": "We need to transmit the auxiliary IB port!",
"created_at": "9h",
"has_liked": false,
"like_count": 1
}
Campo | Tipo | Sobre |
---|---|---|
username | String | Apelido do usuário (não existe outro usuário com o mesmo apelido) |
avatar | String | URL da imagem do usuário. Pode ser nulo |
Campo | Tipo | Sobre |
---|---|---|
uuid | String | ID único da publicação |
user | Object | Um usuário. O autor da publicação |
photo | String | URL da imagem da publicação |
created_at | String | Momento de criação |
location | Object | Uma localização |
comments | Array | Uma lista de comentários |
Campo | Tipo | Sobre |
---|---|---|
uuid | String | ID único da publicação |
photo | String | URL da imagem da publicação |
comment_count | Number | Quantidade de comentários na publicação |
Campo | Tipo | Sobre |
---|---|---|
city | String | Nome da cidade |
country | String | Nome do país |
Campo | Tipo | Sobre |
---|---|---|
uuid | String | ID único do comentário |
user | Object | Um usuário. O autor do comentário |
message | String | Conteúdo do comentário |
created_at | String | Momento de criação |
like_count | Number | Quantidade de curtidas |
has_liked | Boolean | Se o usuário já curtiu ou não esse comentário |
Lançado intencionalmente com a probabilidade de 33%. Saiba mais.
Campo | Sobre |
---|---|
type | random_error |
status | 500 |
Lançado quando o uuid
informado não se refere a nenhuma publicação válida.
Campo | Sobre |
---|---|
type | post_not_found |
status | 404 |
uuid | uuid informado |
Lançado quando o username
informado não se refere a nenhum usuário válido.
Campo | Sobre |
---|---|
type | user_not_found |
status | 400 |
username | username informado |
Lançado quando o comment
informado não se refere a nenhum usuário válido.
Campo | Sobre |
---|---|
type | comment_not_found |
status | 400 |
uuid | uuid informado |
Lançado quando algum parâmetro obrigatório não é informado.
Campo | Sobre |
---|---|
type | missing_property |
status | 400 |
properties | Lista contendo todos os campos obrigatórios que não foram informados |