Hi,
I have tried connect datastore with appengine in golang, but getting an error about authentication in my local by using GoogleCloudSdk/bin/dev_appserver.py datastore/app.yaml. Please some one help me to solve this problem.
app.yaml
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
env_variables:
GCLOUD_DATASET_ID: "abc-1234567"
datastore.go
package gaedatastore
import (
"log"
"net/http"
"os"
"encoding/json"
"
cloud.google.com/go/datastore"
"
google.golang.org/appengine"
)
var datastoreClient *datastore.Client
func init() {
http.HandleFunc("/articles", articlesListB)
}
func articlesListB(res http.ResponseWriter, req *http.Request) {
ctx := appengine.NewContext(req)
projectID := os.Getenv("GCLOUD_DATASET_ID")
var err error
datastoreClient, err = datastore.NewClient(ctx, projectID)
if err != nil {
log.Fatal(err)
}
query := datastore.NewQuery("Article").Order("Title").Limit(10)
articles := make([]*Article, 0)
_, err = datastoreClient.GetAll(ctx, query, &articles)
if err != nil {
http.Error(res, err.Error(), http.StatusInternalServerError)
return
}
json.NewEncoder(res).Encode(articles)
}