En GetPostById hace falta un elemento importante, que es el de validar que el post con ese id exista. Si se deja tal y como está, se devuelve un 200 con un post con valores por defecto, pero esto es incorrecto, ya que la respuesta correcta deberÃa de ser un 404 Not found.
func GetPostByIdHandler(s server.Server) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
post, err := repository.GetPostById(r.Context(), params["id"])
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
if len(post.Id) == 0 {
http.Error(w, "post not found", http.StatusNotFound)
return
}
helpers.HttpJsonResponse(w, post)
}
}
Esto mismo aplica también a los getters de usuario. Hay algunas funciones especiales que las he creado yo para no tener que ir repitiendo todo el rato el mismo código (como añadir el content-type json)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.