{"info":{"_postman_id":"7aed79fc-d1e5-4e8e-a5ef-a4675370233f","name":"API Orkut","description":"<html><head></head><body><p>Esta API foi desenvolvida com <strong>Node.js, Express e PostgreSQL</strong>, com o objetivo de demonstrar na prática a construção de um backend completo.</p>\n<p>O projeto inclui:</p>\n<ul>\n<li><p>Autenticação com JWT</p>\n</li>\n<li><p>Senhas seguras com bcrypt</p>\n</li>\n<li><p>CRUD completo de posts</p>\n</li>\n<li><p>Relacionamento entre usuários e posts</p>\n</li>\n<li><p>Validação de dados com Joi</p>\n</li>\n</ul>\n<p>A proposta é servir como base de aprendizado para iniciantes, evoluindo passo a passo até um padrão mais próximo do mercado.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"19569624","collectionId":"7aed79fc-d1e5-4e8e-a5ef-a4675370233f","publishedId":"2sBXqCNNu3","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-04-13T22:30:29.000Z"},"item":[{"name":"Recursos de Usuários","item":[{"name":"Buscar Usuarios","id":"bfb0ac06-1cdf-46a2-895e-067b442dbd7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://projetoapi-orkut-p1dn.onrender.com/usuarios","urlObject":{"protocol":"https","path":["usuarios"],"host":["projetoapi-orkut-p1dn","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"784b71fa-911a-4c43-bb95-85caa8b042f7","name":"Buscar Usuarios","originalRequest":{"method":"GET","header":[],"url":"https://projetoapi-orkut-p1dn.onrender.com/usuarios"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"Date","value":"Fri, 10 Apr 2026 21:43:46 GMT","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"302","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"access-control-allow-origin","value":"*","type":"text"},{"key":"Content-Encoding","value":"br","type":"text"},{"key":"etag","value":"W/\"1e7-1A184WeFn36wiOnqmNFp76wSnKE\"","type":"text"},{"key":"rndr-id","value":"2264aef9-414d-421b","type":"text"},{"key":"vary","value":"Accept-Encoding","type":"text"},{"key":"x-powered-by","value":"Express","type":"text"},{"key":"x-render-origin-server","value":"Render","type":"text"},{"key":"cf-cache-status","value":"DYNAMIC","type":"text"},{"key":"Server","value":"cloudflare","type":"text"},{"key":"CF-RAY","value":"9ea4edcf28c0aa58-GRU","type":"text"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": 1,\n        \"nome\": \"Marcia\",\n        \"email\": \"marcinha@gmail.com\",\n        \"senha\": \"$2b$10$z6Kgl3q2RNZlh.49o4..l.o4V3OGjWeImnRugbAxVmfoSyWzs0Oy6\",\n        \"criado_em\": \"2026-04-08T22:56:12.030Z\"\n    },\n    {\n        \"id\": 2,\n        \"nome\": \"Michael\",\n        \"email\": \"michael@email.com\",\n        \"senha\": \"$2b$10$xeehQy8YKB0J.Sgtm3DNBO.BLqUrjUDMsgowtqZfwJtLWPCY.aJ2C\",\n        \"criado_em\": \"2026-04-10T21:27:45.381Z\"\n    },\n    {\n        \"id\": 3,\n        \"nome\": \"Jose\",\n        \"email\": \"jose@gmail.com\",\n        \"senha\": \"$2b$10$aXcSWhOvhpQX5WRt7NGXrulZ/FGaCl8kkWiyauXxvwu17FpXSV9dm\",\n        \"criado_em\": \"2026-04-10T21:38:00.054Z\"\n    }\n]"}],"_postman_id":"bfb0ac06-1cdf-46a2-895e-067b442dbd7c"},{"name":"Cadastro Usuarios","id":"049e017e-e0dd-492e-8882-7e019dce6699","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"nome\": \"Michael\",\r\n    \"email\": \"michael@email.com\",\r\n    \"senha\": \"400298922\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/usuarios","description":"<p>Esta rota é responsável por <strong>cadastrar um novo usuário</strong> na aplicação.</p>\n<p>Os dados enviados são validados antes do processamento e a senha é protegida utilizando a biblioteca <strong>bcrypt</strong>, garantindo que não seja armazenada em formato texto no banco de dados.</p>\n<p>Após o cadastro, o usuário poderá realizar autenticação na aplicação.</p>\n","urlObject":{"protocol":"https","path":["usuarios"],"host":["projetoapi-orkut-p1dn","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"a3d27d08-67a5-419a-920f-815cd8d082b4","name":"Cadastro Usuarios","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"nome\": \"Michael\",\r\n    \"email\": \"michael@email.com\",\r\n    \"senha\": \"400298922\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/usuarios"},"status":"Created","code":201,"_postman_previewlanguage":"JSON","header":[{"key":"Date","value":"Fri, 10 Apr 2026 21:27:45 GMT","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"186","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"access-control-allow-origin","value":"*","type":"text"},{"key":"Content-Encoding","value":"br","type":"text"},{"key":"etag","value":"W/\"d8-1bPl8ZWwT4vWdSdQoET1qzE81Fw\"","type":"text"},{"key":"rndr-id","value":"3eb6d94d-8445-4938","type":"text"},{"key":"vary","value":"Accept-Encoding","type":"text"},{"key":"x-powered-by","value":"Express","type":"text"},{"key":"x-render-origin-server","value":"Render","type":"text"},{"key":"cf-cache-status","value":"DYNAMIC","type":"text"},{"key":"Server","value":"cloudflare","type":"text"},{"key":"CF-RAY","value":"9ea4d6557ebe407e-GRU","type":"text"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"mensagem\": \"Usuário criado com sucesso\",\n    \"usuario\": {\n        \"id\": 2,\n        \"nome\": \"Michael\",\n        \"email\": \"michael@email.com\",\n        \"senha\": \"$2b$10$xeehQy8YKB0J.Sgtm3DNBO.BLqUrjUDMsgowtqZfwJtLWPCY.aJ2C\",\n        \"criado_em\": \"2026-04-10T21:27:45.381Z\"\n    }\n}"}],"_postman_id":"049e017e-e0dd-492e-8882-7e019dce6699"},{"name":"Login Usuarios","id":"1da46d55-9ac5-414d-920f-c287b1dcf374","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"michael@email.com\",\r\n    \"senha\": \"400298922\"\r\n}    \r\n","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/login","description":"<p>Esta rota é responsável por <strong>realizar o login do usuário</strong>.</p>\n<p>O sistema verifica se o email existe e compara a senha informada com a senha criptografada utilizando <strong>bcrypt</strong>.</p>\n<p>Em caso de sucesso, é gerado um token de autenticação utilizando <strong>jsonwebtoken</strong>, que deverá ser utilizado nas próximas requisições para acessar rotas protegidas.</p>\n","urlObject":{"protocol":"https","path":["login"],"host":["projetoapi-orkut-p1dn","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"50ffe050-6e03-4444-b1c0-5d611779f5bb","name":"Login Usuarios","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"michael@email.com\",\r\n    \"senha\": \"400298922\"\r\n}    \r\n","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/login"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"Date","value":"Fri, 10 Apr 2026 21:37:02 GMT","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"133","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"access-control-allow-origin","value":"*","type":"text"},{"key":"Content-Encoding","value":"br","type":"text"},{"key":"etag","value":"W/\"95-tGmfdROEhl9qofZHNhEUYuKtCkI\"","type":"text"},{"key":"rndr-id","value":"a803726e-1ec2-4518","type":"text"},{"key":"vary","value":"Accept-Encoding","type":"text"},{"key":"x-powered-by","value":"Express","type":"text"},{"key":"x-render-origin-server","value":"Render","type":"text"},{"key":"cf-cache-status","value":"DYNAMIC","type":"text"},{"key":"Server","value":"cloudflare","type":"text"},{"key":"CF-RAY","value":"9ea4e3f20cf0f225-GRU","type":"text"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiaWF0IjoxNzc1ODU3MDIyLCJleHAiOjE3NzU4NjA2MjJ9.K4lN4c4Tza4HutC3MYhVo6ynPDQJKnakfSPJG4GIiEE\"\n}"}],"_postman_id":"1da46d55-9ac5-414d-920f-c287b1dcf374"}],"id":"c4c56729-3c54-4cec-8582-e978ab39d83a","_postman_id":"c4c56729-3c54-4cec-8582-e978ab39d83a","description":""},{"name":"📝 Recursos de Postagens","item":[{"name":"Criar Postagem","id":"ef6fab60-690b-483b-ab60-ccd69a70121e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n   \"titulo\": \"Documentação\",\r\n   \"conteudo\": \"Postagem para documentação!\"  \r\n} ","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/posts","description":"<p>Esta rota é responsável por <strong>criar uma nova postagem</strong>.</p>\n<p>O usuário envia os dados da postagem, que são validados antes de serem armazenados no banco de dados. Cada postagem está associada a um usuário.</p>\n","urlObject":{"protocol":"https","path":["posts"],"host":["projetoapi-orkut-p1dn","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"1f460566-37ef-4e2b-9e00-10290f5b71c7","name":"Criar Postagem","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n   \"titulo\": \"Documentação\",\r\n   \"conteudo\": \"Postagem para documentação!\"  \r\n} ","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/posts"},"status":"Created","code":201,"_postman_previewlanguage":"JSON","header":[{"key":"Date","value":"Fri, 10 Apr 2026 21:52:52 GMT","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"142","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"access-control-allow-origin","value":"*","type":"text"},{"key":"Content-Encoding","value":"br","type":"text"},{"key":"etag","value":"W/\"b1-ua8kOcYf0dQusBpvHkon5OiH8Nw\"","type":"text"},{"key":"rndr-id","value":"44076867-f60d-4a49","type":"text"},{"key":"vary","value":"Accept-Encoding","type":"text"},{"key":"x-powered-by","value":"Express","type":"text"},{"key":"x-render-origin-server","value":"Render","type":"text"},{"key":"cf-cache-status","value":"DYNAMIC","type":"text"},{"key":"Server","value":"cloudflare","type":"text"},{"key":"CF-RAY","value":"9ea4fb213d4a622f-GRU","type":"text"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"mensagem\": \"Post criado com sucesso\",\n    \"post\": {\n        \"id\": 2,\n        \"titulo\": \"Documentação\",\n        \"conteudo\": \"Postagem para documentação!\",\n        \"usuario_id\": 2,\n        \"criado_em\": \"2026-04-10T21:52:52.217Z\"\n    }\n}"}],"_postman_id":"ef6fab60-690b-483b-ab60-ccd69a70121e"},{"name":"Buscar Postagem","id":"c2b631b5-7ec8-4ece-b579-44361f95b399","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[]},"isInherited":false},"method":"GET","header":[],"url":"https://projetoapi-orkut-p1dn.onrender.com/posts","description":"<p>Esta rota é responsável por <strong>listar todas as postagens cadastradas</strong> na aplicação.</p>\n<p>Os dados retornados incluem informações da postagem, como título, conteúdo e data de criação, além de dados do usuário que realizou a postagem (como nome e ID), utilizando um relacionamento entre as tabelas no banco de dados.</p>\n<p>As postagens são exibidas em ordem decrescente do usuario_id por , ou seja, das mais recentes para as mais antigas.</p>\n","urlObject":{"protocol":"https","path":["posts"],"host":["projetoapi-orkut-p1dn","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"ca95fb44-fbf6-43b4-9265-a6a28bb4e5d2","name":"Buscar Postagem","originalRequest":{"method":"GET","header":[],"url":"https://projetoapi-orkut-p1dn.onrender.com/posts"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"Date","value":"Fri, 10 Apr 2026 21:57:21 GMT","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"178","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"access-control-allow-origin","value":"*","type":"text"},{"key":"Content-Encoding","value":"br","type":"text"},{"key":"etag","value":"W/\"12d-HU8tiNCGcI17bB8d+9jko/8Ptys\"","type":"text"},{"key":"rndr-id","value":"c5bc0bb9-54ff-4d3c","type":"text"},{"key":"vary","value":"Accept-Encoding","type":"text"},{"key":"x-powered-by","value":"Express","type":"text"},{"key":"x-render-origin-server","value":"Render","type":"text"},{"key":"cf-cache-status","value":"DYNAMIC","type":"text"},{"key":"Server","value":"cloudflare","type":"text"},{"key":"CF-RAY","value":"9ea501b3dccf1abc-GRU","type":"text"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"usuarios_id\": 2,\n        \"nome\": \"Michael\",\n        \"titulo\": \"Documentação\",\n        \"conteudo\": \"Postagem para documentação!\",\n        \"criado_em\": \"10/04/2026, 18:52:52\",\n        \"post_id\": 2\n    },\n    {\n        \"usuarios_id\": 1,\n        \"nome\": \"Marcia\",\n        \"titulo\": \"Aula render e deploy\",\n        \"conteudo\": \"Postagem bem sucedida!\",\n        \"criado_em\": \"09/04/2026, 14:38:32\",\n        \"post_id\": 1\n    }\n]"}],"_postman_id":"c2b631b5-7ec8-4ece-b579-44361f95b399"},{"name":"Atualizar Postagem","id":"3a05822d-c2e9-4759-9ee7-5726a2cb8bfb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n   \"titulo\": \"Documentação\",\r\n   \"conteudo\": \"Atualizando postagem da documentação!\" \r\n}   ","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/posts/2","description":"<p>Esta rota permite a atualização de uma postagem existente.<br />Os dados enviados na requisição substituem ou modificam as informações já persistidas no banco de dados.<br />A operação está associada a um usuário autenticado, sendo necessário validar a propriedade da postagem antes de permitir a atualização.</p>\n","urlObject":{"protocol":"https","path":["posts","2"],"host":["projetoapi-orkut-p1dn","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"e0731958-3a4e-4ef5-a1cc-7c445c336c16","name":"Atualizar Postagem","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n   \"titulo\": \"Documentação\",\r\n   \"conteudo\": \"Atualizando postagem da documentação!\" \r\n}   ","options":{"raw":{"language":"json"}}},"url":"https://projetoapi-orkut-p1dn.onrender.com/posts/2"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"Date","value":"Fri, 10 Apr 2026 22:06:35 GMT","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"154","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"access-control-allow-origin","value":"*","type":"text"},{"key":"Content-Encoding","value":"br","type":"text"},{"key":"etag","value":"W/\"bf-Yke1KmhO7eGSud/aSgJnbHHupDk\"","type":"text"},{"key":"rndr-id","value":"1773050a-f1e0-4429","type":"text"},{"key":"vary","value":"Accept-Encoding","type":"text"},{"key":"x-powered-by","value":"Express","type":"text"},{"key":"x-render-origin-server","value":"Render","type":"text"},{"key":"cf-cache-status","value":"DYNAMIC","type":"text"},{"key":"Server","value":"cloudflare","type":"text"},{"key":"CF-RAY","value":"9ea50f3b7faa1cdb-GRU","type":"text"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"mensagem\": \"Post atualizado com sucesso\",\n    \"post\": {\n        \"id\": 2,\n        \"titulo\": \"Documentação\",\n        \"conteudo\": \"Atualizando postagem da documentação!\",\n        \"usuario_id\": 2,\n        \"criado_em\": \"2026-04-10T21:52:52.217Z\"\n    }\n}"}],"_postman_id":"3a05822d-c2e9-4759-9ee7-5726a2cb8bfb"},{"name":"Deletar Postagem","id":"72240bd1-669d-4ce0-8fe3-c45af02a86c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://projetoapi-orkut-p1dn.onrender.com/posts/2","description":"<p>Esta rota é responsável por <strong>excluir uma postagem existente</strong>.</p>\n<p>A exclusão é feita com base no ID informado na URL. Após a remoção, a API retorna os dados da postagem que foi deletada.</p>\n","urlObject":{"protocol":"https","path":["posts","2"],"host":["projetoapi-orkut-p1dn","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"7493f0bb-caa6-4723-85bb-36bee4661d7c","name":"Deletar Postagem","originalRequest":{"method":"DELETE","header":[],"url":"https://projetoapi-orkut-p1dn.onrender.com/posts/2"},"status":"OK","code":200,"_postman_previewlanguage":"JSON","header":[{"key":"Date","value":"Fri, 10 Apr 2026 22:12:57 GMT","type":"text"},{"key":"Content-Type","value":"application/json; charset=utf-8","type":"text"},{"key":"Content-Length","value":"154","type":"text"},{"key":"Connection","value":"keep-alive","type":"text"},{"key":"access-control-allow-origin","value":"*","type":"text"},{"key":"Content-Encoding","value":"br","type":"text"},{"key":"etag","value":"W/\"bd-yVwu/+2Rk8knnAwnwLuVD4GYtCw\"","type":"text"},{"key":"rndr-id","value":"4f6cab9d-2496-40e2","type":"text"},{"key":"vary","value":"Accept-Encoding","type":"text"},{"key":"x-powered-by","value":"Express","type":"text"},{"key":"x-render-origin-server","value":"Render","type":"text"},{"key":"cf-cache-status","value":"DYNAMIC","type":"text"},{"key":"Server","value":"cloudflare","type":"text"},{"key":"CF-RAY","value":"9ea5188b384b055f-GRU","type":"text"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"mensagem\": \"Post deletado com sucesso\",\n    \"post\": {\n        \"id\": 2,\n        \"titulo\": \"Documentação\",\n        \"conteudo\": \"Atualizando postagem da documentação!\",\n        \"usuario_id\": 2,\n        \"criado_em\": \"2026-04-10T21:52:52.217Z\"\n    }\n}"}],"_postman_id":"72240bd1-669d-4ce0-8fe3-c45af02a86c0"}],"id":"d8560e7a-ca76-4b1c-ac85-6b192dbd4705","_postman_id":"d8560e7a-ca76-4b1c-ac85-6b192dbd4705","description":""}]}