<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Tudo sobre APIs REST]]></title><description><![CDATA[Tudo sobre APIs REST]]></description><link>https://restnapratica.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 06:43:12 GMT</lastBuildDate><atom:link href="https://restnapratica.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Como documentar um endpoint REST de forma clara e objetiva (com exemplo real)]]></title><description><![CDATA[A documentação de uma API REST pode ser a diferença entre um sistema fácil de integrar e um verdadeiro pesadelo. Muitas vezes negligenciada, uma boa documentação economiza tempo, evita retrabalho e melhora a comunicação entre equipes.
Neste post, vou...]]></description><link>https://restnapratica.hashnode.dev/como-documentar-um-endpoint-rest-de-forma-clara-e-objetiva-com-exemplo-real</link><guid isPermaLink="true">https://restnapratica.hashnode.dev/como-documentar-um-endpoint-rest-de-forma-clara-e-objetiva-com-exemplo-real</guid><category><![CDATA[Developer]]></category><category><![CDATA[REST API]]></category><category><![CDATA[REST]]></category><category><![CDATA[backend]]></category><dc:creator><![CDATA[Matheus Almeida]]></dc:creator><pubDate>Thu, 10 Apr 2025 17:29:38 GMT</pubDate><content:encoded><![CDATA[<p>A documentação de uma API REST pode ser a diferença entre um sistema fácil de integrar e um verdadeiro pesadelo. Muitas vezes negligenciada, uma boa documentação economiza tempo, evita retrabalho e melhora a comunicação entre equipes.</p>
<p>Neste post, vou mostrar um modelo direto de como documentar endpoints REST — com base em exemplos reais e cobrindo os principais métodos: <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>PATCH</code> e <code>DELETE</code>.</p>
<hr />
<h2 id="heading-visao-geral-dos-metodos-http">🧭 Visão geral dos métodos HTTP</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Método</td><td>Finalidade</td></tr>
</thead>
<tbody>
<tr>
<td><code>GET</code></td><td>Buscar informações</td></tr>
<tr>
<td><code>POST</code></td><td>Criar um novo recurso</td></tr>
<tr>
<td><code>PUT</code></td><td>Atualizar um recurso inteiro</td></tr>
<tr>
<td><code>PATCH</code></td><td>Atualizar parcialmente um recurso</td></tr>
<tr>
<td><code>DELETE</code></td><td>Remover um recurso</td></tr>
</tbody>
</table>
</div><hr />
<h2 id="heading-exemplo-api-de-consulta-de-processos">🧪 Exemplo: API de Consulta de Processos</h2>
<p>Vamos usar uma API fictícia chamada <code>/api/processos</code> para ilustrar cada um dos métodos.</p>
<hr />
<h2 id="heading-1-get-apiprocessosid">1. 🔍 <code>GET /api/processos/{id}</code></h2>
<h3 id="heading-buscar-detalhes-de-um-processo-especifico">Buscar detalhes de um processo específico</h3>
<h4 id="heading-url">📍 URL</h4>
<p><code>GET /api/processos/0001234-56.2023.8.26.0001</code></p>
<h4 id="heading-resposta">🔼 Resposta</h4>
<pre><code class="lang-json">{
  <span class="hljs-attr">"numeroProcesso"</span>: <span class="hljs-string">"0001234-56.2023.8.26.0001"</span>,
  <span class="hljs-attr">"classe"</span>: <span class="hljs-string">"Ação Cível"</span>,
  <span class="hljs-attr">"assunto"</span>: <span class="hljs-string">"Cobrança"</span>,
  <span class="hljs-attr">"dataDistribuicao"</span>: <span class="hljs-string">"2023-08-15"</span>,
  <span class="hljs-attr">"partes"</span>: [
    { <span class="hljs-attr">"nome"</span>: <span class="hljs-string">"Maria da Silva"</span>, <span class="hljs-attr">"tipo"</span>: <span class="hljs-string">"AUTOR"</span> },
    { <span class="hljs-attr">"nome"</span>: <span class="hljs-string">"João de Souza"</span>, <span class="hljs-attr">"tipo"</span>: <span class="hljs-string">"RÉU"</span> }
  ]
}
</code></pre>
<hr />
<h2 id="heading-2-post-apiprocessos">2. 📝 <code>POST /api/processos</code></h2>
<h3 id="heading-criar-um-novo-processo">Criar um novo processo</h3>
<h4 id="heading-requisicao">📤 Requisição</h4>
<pre><code class="lang-json">{
  <span class="hljs-attr">"numeroProcesso"</span>: <span class="hljs-string">"0001234-56.2023.8.26.0001"</span>,
  <span class="hljs-attr">"classe"</span>: <span class="hljs-string">"Ação Cível"</span>,
  <span class="hljs-attr">"assunto"</span>: <span class="hljs-string">"Cobrança"</span>
}
</code></pre>
<h4 id="heading-resposta-1">🔼 Resposta</h4>
<ul>
<li><code>201 Created</code> com o corpo criado ou o ID do recurso</li>
</ul>
<hr />
<h2 id="heading-3-put-apiprocessosid">3. 🔄 <code>PUT /api/processos/{id}</code></h2>
<h3 id="heading-atualizar-totalmente-um-processo-existente">Atualizar totalmente um processo existente</h3>
<h4 id="heading-requisicao-1">📤 Requisição</h4>
<pre><code class="lang-json">{
  <span class="hljs-attr">"classe"</span>: <span class="hljs-string">"Ação Penal"</span>,
  <span class="hljs-attr">"assunto"</span>: <span class="hljs-string">"Furto qualificado"</span>
}
</code></pre>
<h4 id="heading-resposta-2">🔼 Resposta</h4>
<ul>
<li><code>200 OK</code> com os dados atualizados</li>
</ul>
<hr />
<h2 id="heading-4-patch-apiprocessosid">4. 🩹 <code>PATCH /api/processos/{id}</code></h2>
<h3 id="heading-atualizar-parcialmente-um-processo">Atualizar parcialmente um processo</h3>
<h4 id="heading-requisicao-2">📤 Requisição</h4>
<pre><code class="lang-json">{
  <span class="hljs-attr">"assunto"</span>: <span class="hljs-string">"Atualização cadastral"</span>
}
</code></pre>
<h4 id="heading-resposta-3">🔼 Resposta</h4>
<ul>
<li><code>200 OK</code> com os dados atualizados</li>
</ul>
<hr />
<h2 id="heading-5-delete-apiprocessosid">5. 🗑️ <code>DELETE /api/processos/{id}</code></h2>
<h3 id="heading-remover-um-processo">Remover um processo</h3>
<h4 id="heading-url-1">📍 URL</h4>
<p><code>DELETE /api/processos/0001234-56.2023.8.26.0001</code></p>
<h4 id="heading-resposta-4">🔼 Resposta</h4>
<ul>
<li><code>204 No Content</code></li>
</ul>
<hr />
<h2 id="heading-boas-praticas-ao-documentar-endpoints">🧠 Boas práticas ao documentar endpoints</h2>
<ol>
<li><p><strong>Seja específico</strong>: mostre exemplos reais de entrada e saída.</p>
</li>
<li><p><strong>Liste os códigos de status possíveis</strong>: isso evita dúvidas sobre como tratar a resposta.</p>
</li>
<li><p><strong>Explique os métodos</strong>: muitos devs confundem <code>PUT</code> e <code>PATCH</code>.</p>
</li>
<li><p><strong>Padronize tudo</strong>: headers, estrutura dos campos, nomes das rotas.</p>
</li>
</ol>
<hr />
<h2 id="heading-conclusao">Conclusão</h2>
<p>Uma documentação clara é um presente que você dá para o seu "eu do futuro" — e para toda a equipe que vai consumir sua API. Com um modelo bem definido, tudo flui melhor.</p>
<hr />
<p><strong>Curtiu o exemplo? Tem alguma dúvida ou sugestão? Comenta aqui ou me chama no LinkedIn — vou trazer mais conteúdos sobre APIs e práticas reais de backend!</strong></p>
]]></content:encoded></item></channel></rss>