{"info":{"_postman_id":"b8c999de-71da-4626-bb59-7877efa4ab75","name":"mini_twitter","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"40491697","collectionId":"b8c999de-71da-4626-bb59-7877efa4ab75","publishedId":"2sB2j4fArv","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-05-01T21:05:40.000Z"},"item":[{"name":"User","item":[{"name":"Register - Registrar usuário","id":"9a25f971-4281-43d9-bdcf-c7f520565e36","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"arthurcrf@gmail.com\",\r\n    \"username\": \"arthur_ribeiro\",\r\n    \"password\": \"1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:8000/user/register/","description":"<p>Registra um usuário fornecendo email, username (nome de usuário) e password (senha)</p>\n","urlObject":{"protocol":"http","port":"8000","path":["user","register",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"9a25f971-4281-43d9-bdcf-c7f520565e36"},{"name":"Login - Logar usuário","id":"1c5dccf7-1dc3-4dc5-a7a9-4c5a5c3f7510","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"username\": \"arthur_ribeiro\",\r\n    \"password\": \"1234\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:8000/user/login/","description":"<p>Loga um usuário com as credenciais username (nome de usuário) e password (senha)</p>\n","urlObject":{"protocol":"http","port":"8000","path":["user","login",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"1c5dccf7-1dc3-4dc5-a7a9-4c5a5c3f7510"},{"name":"Profile - Mostra o perfil do usuário logado","id":"4a204260-8313-47a0-a24a-97796b198a86","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:8000/user/profile/","description":"<p>Mostra o perfil do usuário logado, mostrando: id, email, username e quantos seguidores ele possui</p>\n","urlObject":{"protocol":"http","port":"8000","path":["user","profile",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"4a204260-8313-47a0-a24a-97796b198a86"},{"name":"Refresh - Refresh Token","id":"6193cc6e-302a-4d9b-ae05-b793c2b2e688","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"refresh\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTc0NjIxNzY4NCwiaWF0IjoxNzQ2MTMxMjg0LCJqdGkiOiJkNmZmZmE0MmIzNjM0YWY0OTljOTMzMjJjNTNiMmM4ZCIsInVzZXJfaWQiOjksInVzZXJuYW1lIjoiYXJ0aHVyX3JpYmVpcm8iLCJlbWFpbCI6ImFydGh1cmNyZkBnbWFpbC5jb20ifQ.9R9NYJ67JRDlxQYzLUE8ZMPIZ0Ma8J6lTBFfvAhDAZo\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:8000/user/refresh/","description":"<p>Fornece um novo token de acesso para o usuário ( é necessário fornecer o refresh token )</p>\n","urlObject":{"protocol":"http","port":"8000","path":["user","refresh",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"6193cc6e-302a-4d9b-ae05-b793c2b2e688"},{"name":"Logout - Logout de usuario utilizando o Refresh","id":"20612099-af0b-4429-9176-384fb81bc17f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"refresh\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTc0NjIxNzY4NCwiaWF0IjoxNzQ2MTMxMjg0LCJqdGkiOiJkNmZmZmE0MmIzNjM0YWY0OTljOTMzMjJjNTNiMmM4ZCIsInVzZXJfaWQiOjksInVzZXJuYW1lIjoiYXJ0aHVyX3JpYmVpcm8iLCJlbWFpbCI6ImFydGh1cmNyZkBnbWFpbC5jb20ifQ.9R9NYJ67JRDlxQYzLUE8ZMPIZ0Ma8J6lTBFfvAhDAZo\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:8000/user/logout/","description":"<p>Desloga do usuário fornecendo o refresh token, ele é adicionado a blacklist e o refresh token não consegue gerar mais token de acesso para o usuário, então ele tem que fazer login novamente</p>\n","urlObject":{"protocol":"http","port":"8000","path":["user","logout",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"20612099-af0b-4429-9176-384fb81bc17f"},{"name":"Delete - Deleta usuário","id":"e88bbcb4-20dc-4926-844f-9c951f5c5590","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://127.0.0.1:8000/user/delete/","description":"<p>Delete o usuário logado</p>\n","urlObject":{"protocol":"http","port":"8000","path":["user","delete",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"e88bbcb4-20dc-4926-844f-9c951f5c5590"}],"id":"513c4082-1ec6-40d5-b293-fdeab216b503","description":"<p>Endpoints Usuários:</p>\n<p>(É necessário passar o bearer token de acesso para ter autorização nas requisições, menos a de registro)</p>\n<p>Register - <a href=\"http://127.0.0.1:8000/user/register/\">http://127.0.0.1:8000/user/register/<br /></a>Login- <a href=\"http://127.0.0.1:8000/user/login/\">http://127.0.0.1:8000/user/login/</a></p>\n<p>Profile - <a href=\"http://127.0.0.1:8000/user/profile/\">http://127.0.0.1:8000/user/profile/</a></p>\n<p>Refresh - <a href=\"http://127.0.0.1:8000/user/refresh/\">http://127.0.0.1:8000/user/refresh/</a></p>\n<p>Logout - <a href=\"http://127.0.0.1:8000/user/logout/\">http://127.0.0.1:8000/user/logout/</a></p>\n<p>Delete - <a href=\"http://127.0.0.1:8000/user/delete/\">http://127.0.0.1:8000/user/delete/</a></p>\n","_postman_id":"513c4082-1ec6-40d5-b293-fdeab216b503"},{"name":"Tweets","item":[{"name":"Global - Feed com todos os tweets","id":"3852e374-53fa-478f-9ef4-fc02cabfd9e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://127.0.0.1:8000/tweets/global/","description":"<p>Mostra o feed 'global' com todos os tweets postados por todos usuários por ordem de criação do tweet, ou seja, o tweet mais recente aparece primeiro (Paginação: 10 posts por página)</p>\n","urlObject":{"protocol":"http","port":"8000","path":["tweets","global",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"3852e374-53fa-478f-9ef4-fc02cabfd9e7"},{"name":"Create - Cria tweet","id":"9b65c9b3-3c75-4eef-8b4e-3c63a6786e11","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"content\": \"Hoje tem que ser no minino time mesclado, descansar quem vem desgastado e pra cima deles!\",\r\n    \"image\": null\r\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:8000/tweets/create/","description":"<p>Cria um tweet contendo um conteúdo de texto e uma imagem</p>\n<p>Obs: Não é possível criar um tweet sem conteúdo e imagem, um dos campos deve ser preenchido.</p>\n","urlObject":{"protocol":"http","port":"8000","path":["tweets","create",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"9b65c9b3-3c75-4eef-8b4e-3c63a6786e11"},{"name":"Foryou - Feed somente de posts de pessoas que usuário segue","id":"cc95d709-9020-4385-8826-687ab8800441","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://127.0.0.1:8000/tweets/foryou/","description":"<p>Mostra o feed com postagens apenas de pessoas que o usuário segue (Paginação: 10 posts por página)</p>\n","urlObject":{"protocol":"http","port":"8000","path":["tweets","foryou",""],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"cc95d709-9020-4385-8826-687ab8800441"},{"name":"Update - Edita um tweet","id":"08abd8f7-8dfb-4991-a221-f469eb30a1f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\r\n    \"content\": \"Hoje tem gol do Matheus Gonçalves\",\r\n    \"image\": null\r\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:8000/tweets/update/26","description":"<p>Edita um tweet, tanto conteúdo como imagem podem ser editados (o formato form-data funciona melhor com as imagens)</p>\n","urlObject":{"protocol":"http","port":"8000","path":["tweets","update","26"],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"08abd8f7-8dfb-4991-a221-f469eb30a1f9"},{"name":"Delete - Deleta um tweet","id":"f986902b-92d4-4780-b3d2-1bfdbb132ecd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://127.0.0.1:8000/tweets/delete/27","description":"<p>Deleta o tweet passando o id do tweet (necessário ser o dono tweet para deletar)</p>\n","urlObject":{"protocol":"http","port":"8000","path":["tweets","delete","27"],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"f986902b-92d4-4780-b3d2-1bfdbb132ecd"},{"name":"Like - Curte um tweet ou deixa de curtir","id":"f9d1312b-e04f-49a5-b381-18f2c70790d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"http://127.0.0.1:8000/tweets/20/like","description":"<p>Curte um tweet ou deixa de curtir caso já esteja sendo curtido (passando o id do tweet)</p>\n","urlObject":{"protocol":"http","port":"8000","path":["tweets","20","like"],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"f9d1312b-e04f-49a5-b381-18f2c70790d4"},{"name":"Seach - Pesquisa tweet com uma palavra-chave ou #","id":"618a9ca8-b8ab-44a6-8327-cfe49b43b948","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://127.0.0.1:8000/tweets/search/?q=mengo","description":"<p>É possível fazer uma pesquisa se posts que contém uma palavra-chave de interesse do usuário ou uma # (passando a query param no url - ?={palavra ou #}) nesse formato</p>\n","urlObject":{"protocol":"http","port":"8000","path":["tweets","search",""],"host":["127","0","0","1"],"query":[{"key":"q","value":"mengo"}],"variable":[]}},"response":[],"_postman_id":"618a9ca8-b8ab-44a6-8327-cfe49b43b948"}],"id":"f55fed12-fe5e-47ec-9ce2-c7f99db8770d","description":"<p>Endpoints Tweets:</p>\n<p>(É necessário passar o bearer token de acesso para ter autorização nas requisições)</p>\n<p>Global - <a href=\"http://127.0.0.1:8000/tweets/global/\">http://127.0.0.1:8000/tweets/global/</a></p>\n<p>Create - <a href=\"http://127.0.0.1:8000/tweets/create/\">http://127.0.0.1:8000/tweets/create/</a></p>\n<p>Foryou - <a href=\"http://127.0.0.1:8000/tweets/foryou/\">http://127.0.0.1:8000/tweets/foryou/</a></p>\n<p>Update - <a href=\"http://127.0.0.1:8000/tweets/update/26\">http://127.0.0.1:8000/tweets/update/{tweet_id}</a></p>\n<p>Delete - <a href=\"http://127.0.0.1:8000/tweets/delete/27\">http://127.0.0.1:8000/tweets/delete/{tweet_id}</a></p>\n<p>Like - <a href=\"http://127.0.0.1:8000/tweets/20/like\">http://127.0.0.1:8000/tweets/{tweet_id}/like</a></p>\n<p>Search - <a href=\"http://127.0.0.1:8000/tweets/search/?q=mengo\">http://127.0.0.1:8000/tweets/search/?q={palavra-ou-#)</a></p>\n","_postman_id":"f55fed12-fe5e-47ec-9ce2-c7f99db8770d"},{"name":"Profile","item":[{"name":"Follow - Segue ou deixa de seguir um usuário","id":"09a889dc-cee9-4c4f-a820-1f55528be627","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"url":"http://127.0.0.1:8000/user/follow/glauco","description":"<p>Um usuário consegue seguir ou parar de seguir outro usuário passando seu username</p>\n","urlObject":{"protocol":"http","port":"8000","path":["user","follow","glauco"],"host":["127","0","0","1"],"query":[],"variable":[]}},"response":[],"_postman_id":"09a889dc-cee9-4c4f-a820-1f55528be627"}],"id":"9f42ca55-f075-4299-87b2-357c6918cce9","description":"<p>Endpoint Profile:</p>\n<p>(É necessário passar o bearer token de acesso para ter autorização na requisição)</p>\n<p>Follow - <a href=\"http://127.0.0.1:8000/user/follow/glauco\">http://127.0.0.1:8000/user/follow/{username}</a></p>\n","_postman_id":"9f42ca55-f075-4299-87b2-357c6918cce9"}]}