0Pricing
Go Academy · Aula

Auxiliares de resposta e códigos de status

c.JSON, c.AbortWithError e respostas de erro

Auxiliares de resposta e códigos de status é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.

c.JSON

c.JSON(statusCode, obj) serializa obj em JSON e define Content-Type como application/json. Esse é o método de resposta mais comum.

c.JSON(http.StatusOK, gin.H{
    "id":   user.ID,
    "name": user.Name,
})

gin.H

gin.H é uma forma abreviada de map[string]any. Utilize-o para objetos JSON criados pontualmente, sem definir uma estrutura.

c.JSON(200, gin.H{"message": "created", "id": id})

Constantes de status HTTP

Utilize as constantes http.Status* em vez de números sem significado para tornar o código mais claro:

c.JSON(http.StatusCreated, gin.H{"id": id})
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid input"})
c.JSON(http.StatusInternalServerError, gin.H{"error": "internal error"})

c.String e c.Data

Envie texto simples com c.String ou bytes arbitrários com c.Data:

c.String(200, "Hello, %s!", name)
c.Data(200, "application/octet-stream", fileBytes)

c.File e c.FileAttachment

Disponibilize um arquivo do disco, incorporado na resposta ou como um download:

c.File("./public/report.pdf")           // inline
c.FileAttachment("./report.pdf", "report.pdf") // download

c.Redirect

Envie um redirecionamento HTTP (301 permanente, 302 temporário):

c.Redirect(http.StatusMovedPermanently, "/new-url")

c.AbortWithStatus

Interrompa o processamento da cadeia de requisições e grave uma resposta vazia com o código de status informado. Diferentemente de c.JSON, ele chama Abort para impedir a execução dos manipuladores subsequentes.

c.AbortWithStatus(http.StatusUnauthorized)

c.Error

Anexe erros ao contexto sem gravar uma resposta. Uma camada intermediária pode coletá-los e gravar uma resposta de erro unificada ao final.

c.Error(fmt.Errorf("database error: %w", err))

Cabeçalhos de resposta

Defina cabeçalhos de resposta personalizados antes de chamar c.JSON ou c.Data:

c.Header("X-Request-ID", requestID)
c.Header("Cache-Control", "max-age=3600")

Renderização de XML

O Gin também oferece suporte a respostas XML e YAML:

c.XML(200, user) // requires xml struct tags
c.YAML(200, user)

Estrutura de resposta personalizada

Defina um contêiner padrão de resposta da API para manter um formato consistente em todos os pontos de acesso:

type APIResponse struct {
    Success bool   `json:"success"`
    Data    any    `json:"data,omitempty"`
    Error   string `json:"error,omitempty"`
}

Verificação rápida

O que c.AbortWithStatus faz de maneira diferente de c.Status?

Recapitulação: auxiliares de resposta

Pontos principais:

  • c.JSON(statusCode, obj) é o principal método de resposta JSON
  • Utilize constantes http.Status* para obter clareza
  • c.AbortWithStatus interrompe a cadeia de manipuladores
  • Defina um contêiner APIResponse consistente para todos os pontos de acesso

Perguntas Frequentes

A aula “Auxiliares de resposta e códigos de status” é grátis?

Sim — o texto completo de “Auxiliares de resposta e códigos de status” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.

O que vou aprender em “Auxiliares de resposta e códigos de status”?

c.JSON, c.AbortWithError e respostas de erro Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Go Academy?

Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Auxiliares de resposta e códigos de status”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Go Academy?

Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Roteador Gin e grupos de rotas
  2. Vinculação e validação de requisições
  3. Auxiliares de resposta e códigos de status
  4. Middleware do Gin: autenticação e logging
← Voltar para Go Academy