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") // downloadc.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
- Roteador Gin e grupos de rotas
- Vinculação e validação de requisições
- Auxiliares de resposta e códigos de status
- Middleware do Gin: autenticação e logging