Go SDK how to query data

I want to query and select the data of the selected data source in the Go plugin backend. Is there any way for me to directly call it? My current method is as follows, but if Grafana has enabled authentication, I need to configure the Token, which is not very reasonable for users to use.

I use app plugin with backend

func handleProxyQuery(sql string, dsUID string) ([]byte, error) {
	if sql == "" || dsUID == "" {
		return nil, fmt.Errorf("missing sql or dsUID")
	}

	bodyData := map[string]interface{}{
		"queries": []map[string]interface{}{
			{
				"refId": "A",
				"datasource": map[string]string{
					"uid": dsUID,
				},
				"rawSql": sql,
				"format": "table",
			},
		},
	}

	jsonBody, err := json.Marshal(bodyData)
	if err != nil {
		return nil, fmt.Errorf("failed to marshal JSON: %w", err)
	}

	req, err := http.NewRequest("POST", "http://localhost:3000/api/ds/query", bytes.NewReader(jsonBody))
	if err != nil {
		return nil, fmt.Errorf("failed to create request: %w", err)
	}

	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("X-Datasource-Uid", dsUID)

	// token := os.Getenv("GF_API_TOKEN")
	// if token != "" {
	//     req.Header.Set("Authorization", "Bearer "+token)
	// }

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return nil, fmt.Errorf("request failed: %w", err)
	}
	defer resp.Body.Close()

	respBody, err := io.ReadAll(resp.Body)
	if err != nil {
		return nil, fmt.Errorf("failed to read response: %w", err)
	}

	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("query failed with status %d: %s", resp.StatusCode, string(respBody))
	}

	return respBody, nil
}