问题标签 [google-app-engine-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - go run:不能运行非主包
这里是简单的 go 应用程序。如果我运行以下代码,我会收到“运行:无法运行非主包”错误。
要修复它,我只需要将包命名为main
. 但我不明白为什么我需要这样做。我应该可以随意命名包。
另一个问题,我知道main函数是程序的入口点,你需要它。否则它将无法正常工作。但是我看到一些没有主要功能的代码仍然有效。
点击这个链接,页面底部的示例没有使用包main和main函数,它仍然有效。只是好奇为什么。
https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore
google-app-engine - Google App Engine:将远程 API 与本地 GAE 开发服务器结合使用
我有一个使用远程 API 访问数据存储的非 GAE 后端。这样做的唯一方法(没有代理 GAE 服务)是使用 GAE Remote API。
这在将远程上下文连接到 GAE 生产部署时工作正常,但是 GAE 开发服务器呢?
我希望能够在部署任何东西之前在本地测试我的更改。有没有办法将远程 API 连接到本地 GAE 开发服务器数据存储?
相关示例代码:
查看host
. 有没有办法将其设置为本地 GAE 开发服务器?
google-app-engine - 如何在 Golang 中使用 http.FileServer 处理 GAE 上的 404 错误
我正在使用 Google App Engine 来服务我用 Hugo 生成的(半)静态网站。我有一个“公共”目录,所有的 HTML 文件都在其中存储并提供。例如,我还有一些用于处理联系表单的服务器端脚本。该app.yaml
文件看起来像这样。
简化的main.go
文件看起来像这样
这工作得很好,并为 html 文件提供服务。但是,我正在寻找一种解决方案来处理找不到页面并且响应404 Not Found
为例如(或任何其他服务器错误)的情况。
我的想法是创建一个自定义处理程序,它可以传入http.Handle("/", myCustomHandler)
并处理服务器响应,并404.html
在必要时重定向到自定义等。我是 Go 新手,似乎无法弄清楚应该如何实现。我也看过 Gorilla Mux,但希望(如果可能的话)不使用外部库来保持简单。
基于这篇文章,我尝试了以下
这个解决方案的工作原理是它也为我的 HTML 页面提供服务,但是我仍然不知道如何处理服务器响应代码。
任何帮助将不胜感激。谢谢!
google-app-engine - golang appengine api测试错误“appengine:NewContext传递了一个未知的http.Request”
我正在使用 appengine 和 golang 开发简单的 RESTful API。当我使用 goapp serve 启动服务时,代码运行良好,并且我开始编写单元测试函数来测试 API 端点,我在这里遇到了恐慌错误appengine: NewContext passed an unknown http.Request
。我在运行时收到此错误goapp test
。
看起来由于某种原因,我无法传递我创建的请求并将其传递给appengine.NewContext()
下面是代码片段..
我创建了一个简单的可重现代码。你能帮我解决这个问题吗?或者是否有人在appengine上有他们的golang API项目,并且有单元测试功能来测试端点,我想看看他们的代码......
这是我发布的gitlab 问题,其中包含问题的所有必需详细信息以及示例和详细的错误消息。感谢您的所有帮助。
google-app-engine - 是否可以使用 Go Google App Engine Standard 的 Cloud Endpoints?
我在 Go on Google App Engine Standard 中实现了一个简单的 API,仅使用:
没什么特别的。但是,我想将此代码移植到使用 Cloud Endpoints 以获得更好的监控和诊断。
甚至可以使用 STANDARD 实例还是我必须转向 FLEXIBLE?
我找不到任何关于此的文档。也没有回答这个看似简单的问题。目前,我有点希望我选择了 Python,因为它的支持似乎更加成熟。我选择 Go 是因为它似乎更适合类似 API 的代码,因为我的最小研究表明 Go 提供了更好的性能。
如果可能的话,是否有任何指示如何请?
google-app-engine - Html Form POST 值在 localhost:8080 时提取良好,但在 AppSpot Golang 部署时为空字符串
周五 2016.12.09
这个简单的 POST 处理程序将在 localhost:8080 运行时提取表单值。[ 1 ]
但是,当部署到 AppSpot 时,这些值为空字符串。将表单操作更改为“GET”在 localhost:8080 和在 AppSpot 部署时都有效。
尝试了 r.PostFormValue("myValue") 和 r.FormValue("myValue") 但都返回 "" r.Method 返回 "POST"
甚至尝试添加: enctype="multipart/form-data" 到表单元素
谢谢你调查这个,罗宾
周六 2016.12.10
续:来自上面的GAEfan
试试: r.ParseForm() myVal = r.Form["myValue"]
尽管当前表单 Html 确实验证了 ttps://validator.w3.org/,但我确实花时间变得更正式,并按照建议添加了“类型”属性。
问题似乎在响应中。r.Body 在 AppSpot 部署时始终为 Nil。即使在表单值提取之前使用“ defer r.Body.Close() ”,AppSpot 始终返回“http: invalid Read on closed Body” 由于表单值是主体响应的一部分,这可以解释为什么这些值总是“”
ref: ttp://www.w3schools.com/tags/ref_httpmethods.asp “请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息正文中发送的:”
甚至尝试过:ttps://cloud.google.com/appengine/docs/go/getting-started/handling-user-input-in-forms 但对于他们的一行表单处理内容来说太复杂了:r.FormValue("内容”)
感谢您对属性的敏锐观察。AppSpot 的 AppEngine 处理问题的方式显然与 localhost 不同,而且我还没有找到合适的教程。
google-app-engine - 如何 fmt.Println() go 程序未分配的内存?
我想将当前程序的虚拟内存内容打印0x10000
到0x50000
(我的系统上包含系统调用蹦床的区域)。
但是,当我尝试编译时,出现了该错误:
在我的情况下,cgo
被禁用(import "C"
在编译时失败)。
也确实syscall.Syscall(SYS_WRITE
是唯一的方法吗?
macos - 将 Go AppEngine 应用程序从 Ubuntu 迁移到 macOS 时出现 404
我有一个使用 go-endpoints 设置后端的应用程序。在 Ubuntu 中本地运行时,我可以向后端发送请求并在 localhost:8080/_ah/api/explorer 中查看 API 资源管理器。我尝试将代码移动到运行 macOS Sierra 10.12.3 的新 Macbook Pro 上,现在在尝试向本地服务器发送请求时得到 404。
我可以从我的 Macbook 部署应用程序,并且后端按预期工作,因此它只是本地服务器出现问题。
我已经尝试过Google关于在本地访问 API 资源管理器的建议。
我尝试在本地服务器的一般 Sierra 问题上遵循此建议。
我的 yaml 文件非常简单:
我尝试搜索 appengine、localhost、go、endpoints、sierra、404 的所有组合,但没有一个解决方案有效。
google-app-engine - 为什么 GAE 标准环境中没有适用于 Golang 的 Cloud Endpoints?
嘿,有人知道为什么Google Cloud Endpoints for Go-lang 不在 Google App Engine 的标准环境中吗?它似乎只被 Python / Java 官方支持/记录。
是不是因为
A) Cloud Endpoints 很快/有一天会来到 Golang。
B) Cloud Endpoints 不是很好,所以它不会在 Golang 中实现。
C) 别的东西。
有这个“非标准”库https://github.com/GoogleCloudPlatform/go-endpoints但它在 9 个月内没有更新。
对于 GAE 项目,我正在尝试在 Python 和 Golang 之间进行选择,而对 Cloud Endpoints 的这种缺乏支持让我犹豫不决。
提前致谢。
git - Google App Engine 是否允许在使用 Go 时导入外部 Github 存储库?
例如,如果我使用 Go 创建了一个 Web 应用程序,我是否能够导入下面我的 Go 代码中列出的以下 Git 存储库: