我已经在 angularjs 中构建了一个网络应用程序,并使用 Go 和 App Engine 构建了一个服务层,但我遇到了一个障碍。Angular 似乎无法识别 HTTP 状态 201(已创建),也无法识别它填充的 Location 标头,并且我一直在使用的gorest库不会返回任何 POST 或 PUT 的正文数据,除了标头201 创建响应。我希望能够将一个新项目添加到我的应用程序中的集合中,并让服务器使用它的唯一 ID 进行响应。我可以在 POST 返回后发出一个单独的 GET 请求,但这既低效又混乱。我还可以修复 gorest 代码以允许主体响应非 GET 动词,但可能是我违反了惯用标准。有什么我在这里想念的吗?
2 回答
BIG阳
TA贡献1859条经验 获得超6个赞
看起来我错过了一些东西。
gorest 库会自动编组来自服务方法的返回类型,只要它是 GET。它不允许使用 POST 或 PUT 以这种方式返回数据。
但是我注意到 WriteAndOveride 方法可以允许在任何类型的调用中设置主体:
serv.ResponseBuilder().SetResponseCode(200).WriteAndOveride([]byte(responseBody))
虽然它感觉不像是最干净的解决方案,但它肯定应该让我畅通无阻。
- 2 回答
- 0 关注
- 278 浏览
添加回答
举报
0/150
提交
取消