code: func (h *FluxHandler) postFluxAST(w http.ResponseWriter, r *http.Request) {
  	var request langRequest
  	ctx := r.Context()
  
  	err := json.NewDecoder(r.Body).Decode(&request)
  	if err != nil {
  		EncodeError(ctx, errors.MalformedDataf("invalid json: %v", err), w)
  		return
  	}
  
  	pkg := parser.ParseSource(request.Query)
  	if ast.Check(pkg) > 0 {
  		err := ast.GetError(pkg)
  		EncodeError(ctx, errors.InvalidDataf("invalid AST: %v", err), w)
  		return
  	}
  
  	res := postFluxASTResponse{
  		AST: pkg,
  	}
  
  	if err := encodeResponse(ctx, w, http.StatusOK, res); err != nil {
  		logEncodingError(h.Logger, r, err)
  		return
  	}
  }
docs: // postFluxAST returns a flux AST for provided flux string