frontend backend
Blog,  JavaScript,  React

Contrato de API entre Front-end e Back-end: O Que É e Como Funciona na Prática

Front-end + Back-end + API REST

Contrato entre Front-end e Back-end: o que é e por que ele é tão importante?

Entenda como definir um contrato de API permite que Front-end e Back-end sejam desenvolvidos separadamente e se integrem sem surpresas no final do projeto.

Em um projeto moderno, é comum termos uma aplicação dividida em Front-end, Back-end e Banco de Dados.

O Front-end apresenta as informações ao usuário. O Back-end processa regras de negócio, valida dados e conversa com o banco. Para essas partes funcionarem juntas, elas precisam falar exatamente a mesma língua.

É justamente aí que entra o contrato de API.

Ele define antecipadamente como o Front-end fará uma solicitação e qual resposta deverá ser fornecida pelo Back-end.

Uma analogia simples: o garçom e o cozinheiro

Imagine uma lanchonete. O cliente faz o pedido para o garçom e o garçom precisa transmitir esse pedido para a cozinha.

🧑‍💻

Front-end

É como o garçom. Recebe aquilo que o usuário deseja e envia o pedido para quem irá processá-lo.

⚙️

Back-end

É como o cozinheiro. Recebe o pedido, processa as informações e devolve um resultado.

📋 O contrato da API é o bloco de pedidos. Front-end e Back-end precisam concordar antecipadamente sobre o formato exato da comunicação.

Imagine que o Front-end envie:

{ "nome": "Teclado Mecânico" }

mas o Back-end tenha sido desenvolvido esperando:

{ "descricaoProduto": "Teclado Mecânico" }

Sem contrato, cada lado pode desenvolver uma solução correta isoladamente e, mesmo assim, a integração falhar.

O que é um contrato de API?

Um contrato de API é uma especificação que determina como diferentes partes de um sistema irão se comunicar.

Ele funciona como um acordo técnico entre quem desenvolve o Front-end e quem desenvolve o Back-end.

  • qual endpoint deverá ser chamado;
  • qual método HTTP deverá ser utilizado;
  • quais dados o Front-end precisa enviar;
  • qual será o formato desses dados;
  • qual resposta o Back-end deverá retornar;
  • qual código HTTP indicará sucesso;
  • quais situações de erro podem ocorrer;
  • quais regras precisam ser respeitadas.

Contrato não é implementação.

O contrato define como a comunicação deverá acontecer. Cada equipe continua livre para implementar internamente sua parte, desde que respeite aquilo que foi combinado.

O que deve existir em um bom contrato?

1. Método HTTPDefine a operação: GET, POST, PUT, PATCH ou DELETE.
2. EndpointDetermina a URL utilizada para acessar determinado recurso.
3. Dados de entradaDefine parâmetros, corpo da requisição e estrutura esperada.
4. Dados de saídaDefine exatamente o JSON que será devolvido.
5. Status HTTPInforma como sucesso e erros serão representados.
6. RegrasDefine comportamentos que precisam ser conhecidos pelos dois lados.

Exemplo prático: contrato de um CRUD de produtos

Vamos considerar uma loja de eletrônicos. Antes do desenvolvimento, Front-end e Back-end concordam que o recurso será chamado de produtos e utilizará a rota /api/produtos.

POST

1. Cadastrar produto — CREATE

POST /api/produtos

O usuário preenche o formulário no Front-end. O Front envia os dados e o Back-end realiza o cadastro.

Front-end envia
{
  "nome": "Teclado Mecânico",
  "preco": 150.00,
  "estoque": 10
}
Back-end responde — 201 Created
{
  "id": 1,
  "nome": "Teclado Mecânico",
  "preco": 150.00,
  "estoque": 10,
  "status": "Cadastrado com sucesso"
}
GET

2. Listar produtos — READ

GET /api/produtos
Front-end envia
GET /api/produtos

Nenhum corpo é necessário.
Back-end responde — 200 OK
[
  {
    "id": 1,
    "nome": "Teclado Mecânico",
    "preco": 150.00
  },
  {
    "id": 2,
    "nome": "Mouse Gamer",
    "preco": 80.00
  }
]
PUT

3. Atualizar produto — UPDATE

PUT /api/produtos/1
Front-end envia
{
  "nome": "Teclado Mecânico",
  "preco": 130.00,
  "estoque": 8
}
Back-end responde — 200 OK
{
  "id": 1,
  "nome": "Teclado Mecânico",
  "preco": 130.00,
  "estoque": 8,
  "mensagem": "Atualizado com sucesso"
}
DELETE

4. Excluir produto — DELETE

DELETE /api/produtos/1
Front-end envia
DELETE /api/produtos/1

Nenhum corpo é necessário.
Back-end responde — 200 OK
{
  "sucesso": true,
  "mensagem": "Produto 1 removido com sucesso"
}

Front-end e Back-end não precisam ser desenvolvidos juntos

Depois que a estrutura da comunicação foi acordada, as duas equipes podem trabalhar independentemente.

📄
Contrato da API
🖥️
Front-end
+
⚙️
Back-end

O Front-end pode trabalhar com um mock ou JSON Server que reproduza exatamente o contrato, enquanto o Back-end implementa a API real.

Se ambos respeitaram o mesmo contrato, a integração tende a ser simples.

O contrato também separa responsabilidades

Front-end

Cria a interface, captura ações do usuário, envia requisições e apresenta os dados recebidos.

Back-end

Recebe requisições, aplica regras de negócio, valida informações, acessa a persistência e devolve respostas.

Contrato

Define a fronteira: método, rota, dados, respostas e regras da comunicação.

O contrato não obriga Front-end e Back-end a usarem a mesma tecnologia

O Front-end pode utilizar React, Vue, Angular ou JavaScript, enquanto a API pode ser construída com Node.js/Express, Java/Spring, C#/ASP.NET, Python/FastAPI ou PHP/Laravel.

O Front-end não precisa conhecer a implementação do Back-end. Ele precisa conhecer o contrato.

O contrato também deve prever as respostas HTTP

StatusSignificadoExemplo
200 OKOperação realizada com sucesso.Listagem ou atualização.
201 CreatedNovo recurso criado.Cadastro de produto.
400 Bad RequestDados inválidos.Preço ausente ou inválido.
404 Not FoundRecurso não encontrado.Produto inexistente.
500 Internal Server ErrorErro inesperado no servidor.Falha durante o processamento.

Como documentar um endpoint de forma simples?

FUNCIONALIDADE Cadastrar produto MÉTODO POST ENDPOINT /api/produtos ENTRADA { "nome": "string", "preco": "number", "estoque": "number" } SUCESSO 201 Created ERROS POSSÍVEIS 400 - Dados inválidos 500 - Erro interno REGRAS O nome é obrigatório. O preço deve ser maior que zero.

Checklist: o contrato está realmente pronto?

O método HTTP está definido?
A URL do endpoint está definida?
Está claro o que o Front-end envia?
Está claro o que o Back-end responde?
Os nomes e tipos dos campos estão definidos?
Os códigos HTTP foram especificados?
As principais regras de negócio estão claras?
O Front-end consegue desenvolver sem perguntar ao Back-end qual será a resposta?
O Back-end consegue implementar sem perguntar ao Front-end quais campos deverá devolver?

Contrato de API é planejamento antes da programação

Definir um contrato antes da implementação evita que Front-end e Back-end tomem decisões incompatíveis durante o desenvolvimento.

O objetivo não é criar burocracia. É diminuir retrabalho, reduzir dependências e permitir que diferentes partes do sistema sejam construídas em paralelo.

Quando método, endpoint, entrada, saída, códigos HTTP e regras estão previamente definidos, cada equipe sabe exatamente o que precisa entregar.

Front-end + Back-end + API REST

Contrato entre Front-end e Back-end: o que é e por que ele é tão importante?

Entenda como definir um contrato de API permite que Front-end e Back-end sejam desenvolvidos separadamente e se integrem sem surpresas no final do projeto.

Em um projeto moderno, é comum termos uma aplicação dividida em Front-end, Back-end e Banco de Dados.

O Front-end apresenta as informações ao usuário. O Back-end processa regras de negócio, valida dados e conversa com o banco. Para essas partes funcionarem juntas, elas precisam falar exatamente a mesma língua.

É justamente aí que entra o contrato de API.

Ele define antecipadamente como o Front-end fará uma solicitação e qual resposta deverá ser fornecida pelo Back-end.

Uma analogia simples: o garçom e o cozinheiro

Imagine uma lanchonete. O cliente faz o pedido para o garçom e o garçom precisa transmitir esse pedido para a cozinha.

🧑‍💻

Front-end

É como o garçom. Recebe aquilo que o usuário deseja e envia o pedido para quem irá processá-lo.

⚙️

Back-end

É como o cozinheiro. Recebe o pedido, processa as informações e devolve um resultado.

📋 O contrato da API é o bloco de pedidos. Front-end e Back-end precisam concordar antecipadamente sobre o formato exato da comunicação.

Imagine que o Front-end envie:

{
  "nome": "Teclado Mecânico"
}

mas o Back-end tenha sido desenvolvido esperando:

{
  "descricaoProduto": "Teclado Mecânico"
}
Sem contrato, cada lado pode desenvolver uma solução correta isoladamente e, mesmo assim, a integração falhar.

O que é um contrato de API?

Um contrato de API é uma especificação que determina como diferentes partes de um sistema irão se comunicar.

Ele funciona como um acordo técnico entre quem desenvolve o Front-end e quem desenvolve o Back-end.

  • qual endpoint deverá ser chamado;
  • qual método HTTP deverá ser utilizado;
  • quais dados o Front-end precisa enviar;
  • qual será o formato desses dados;
  • qual resposta o Back-end deverá retornar;
  • qual código HTTP indicará sucesso;
  • quais situações de erro podem ocorrer;
  • quais regras precisam ser respeitadas.

Contrato não é implementação.

O contrato define como a comunicação deverá acontecer. Cada equipe continua livre para implementar internamente sua parte, desde que respeite aquilo que foi combinado.

O que deve existir em um bom contrato?

1. Método HTTPDefine a operação: GET, POST, PUT, PATCH ou DELETE.
2. EndpointDetermina a URL utilizada para acessar determinado recurso.
3. Dados de entradaDefine parâmetros, corpo da requisição e estrutura esperada.
4. Dados de saídaDefine exatamente o JSON que será devolvido.
5. Status HTTPInforma como sucesso e erros serão representados.
6. RegrasDefine comportamentos que precisam ser conhecidos pelos dois lados.

Exemplo prático: contrato de um CRUD de produtos

Vamos considerar uma loja de eletrônicos. Antes do desenvolvimento, Front-end e Back-end concordam que o recurso será chamado de produtos e utilizará a rota /api/produtos.

POST

1. Cadastrar produto — CREATE

POST /api/produtos

O usuário preenche o formulário no Front-end. O Front envia os dados e o Back-end realiza o cadastro.

Front-end envia
{
  "nome": "Teclado Mecânico",
  "preco": 150.00,
  "estoque": 10
}
Back-end responde — 201 Created
{
  "id": 1,
  "nome": "Teclado Mecânico",
  "preco": 150.00,
  "estoque": 10,
  "status": "Cadastrado com sucesso"
}
GET

2. Listar produtos — READ

GET /api/produtos
Front-end envia
GET /api/produtos

Nenhum corpo é necessário.
Back-end responde — 200 OK
[
  {
    "id": 1,
    "nome": "Teclado Mecânico",
    "preco": 150.00
  },
  {
    "id": 2,
    "nome": "Mouse Gamer",
    "preco": 80.00
  }
]
PUT

3. Atualizar produto — UPDATE

PUT /api/produtos/1
Front-end envia
{
  "nome": "Teclado Mecânico",
  "preco": 130.00,
  "estoque": 8
}
Back-end responde — 200 OK
{
  "id": 1,
  "nome": "Teclado Mecânico",
  "preco": 130.00,
  "estoque": 8,
  "mensagem": "Atualizado com sucesso"
}
DELETE

4. Excluir produto — DELETE

DELETE /api/produtos/1
Front-end envia
DELETE /api/produtos/1

Nenhum corpo é necessário.
Back-end responde — 200 OK
{
  "sucesso": true,
  "mensagem": "Produto 1 removido com sucesso"
}

Front-end e Back-end não precisam ser desenvolvidos juntos

Depois que a estrutura da comunicação foi acordada, as duas equipes podem trabalhar independentemente.

📄
Contrato da API
🖥️
Front-end
+
⚙️
Back-end

O Front-end pode trabalhar com um mock ou JSON Server que reproduza exatamente o contrato, enquanto o Back-end implementa a API real.

Se ambos respeitaram o mesmo contrato, a integração tende a ser simples.

O contrato também separa responsabilidades

Front-end

Cria a interface, captura ações do usuário, envia requisições e apresenta os dados recebidos.

Back-end

Recebe requisições, aplica regras de negócio, valida informações, acessa a persistência e devolve respostas.

Contrato

Define a fronteira: método, rota, dados, respostas e regras da comunicação.

O contrato não obriga Front-end e Back-end a usarem a mesma tecnologia

O Front-end pode utilizar React, Vue, Angular ou JavaScript, enquanto a API pode ser construída com Node.js/Express, Java/Spring, C#/ASP.NET, Python/FastAPI ou PHP/Laravel.

O Front-end não precisa conhecer a implementação do Back-end. Ele precisa conhecer o contrato.

O contrato também deve prever as respostas HTTP

StatusSignificadoExemplo
200 OKOperação realizada com sucesso.Listagem ou atualização.
201 CreatedNovo recurso criado.Cadastro de produto.
400 Bad RequestDados inválidos.Preço ausente ou inválido.
404 Not FoundRecurso não encontrado.Produto inexistente.
500 Internal Server ErrorErro inesperado no servidor.Falha durante o processamento.

Como documentar um endpoint de forma simples?

FUNCIONALIDADE
Cadastrar produto

MÉTODO
POST

ENDPOINT
/api/produtos

ENTRADA
{
  "nome": "string",
  "preco": "number",
  "estoque": "number"
}

SUCESSO
201 Created

ERROS POSSÍVEIS
400 - Dados inválidos
500 - Erro interno

REGRAS
O nome é obrigatório.
O preço deve ser maior que zero.

Checklist: o contrato está realmente pronto?

O método HTTP está definido?
A URL do endpoint está definida?
Está claro o que o Front-end envia?
Está claro o que o Back-end responde?
Os nomes e tipos dos campos estão definidos?
Os códigos HTTP foram especificados?
As principais regras de negócio estão claras?
O Front-end consegue desenvolver sem perguntar ao Back-end qual será a resposta?
O Back-end consegue implementar sem perguntar ao Front-end quais campos deverá devolver?

Contrato de API é planejamento antes da programação

Definir um contrato antes da implementação evita que Front-end e Back-end tomem decisões incompatíveis durante o desenvolvimento.

O objetivo não é criar burocracia. É diminuir retrabalho, reduzir dependências e permitir que diferentes partes do sistema sejam construídas em paralelo.

Quando método, endpoint, entrada, saída, códigos HTTP e regras estão previamente definidos, cada equipe sabe exatamente o que precisa entregar.

Leave a Reply

Your email address will not be published. Required fields are marked *