我正在使用go-swagger,但是我有一个例子,我想写一个字符串给一个响应。我需要调用"WriteResponse“函数
WriteResponse(rw http.ResponseWriter, producer runtime.Producer)我遇到的问题是,我不知道如何将字符串转换为http.ResponseWriter并创建runtime.Producer。
如果有帮助,这里有我的代码片段……
//convert the database response to a string array of valid JSON
stringArray, conversionError := plan.ConvertPlanArrayToString(response)
if conversionError != nil {
return swaggerPlan.NewPlanGetTemplatePlanInternalServerError()
}
//Need to convert string value
stringValue := stringArray[0]
return swaggerPlan.NewPlanGetTemplatePlanOK().WriteResponse(NOT SURE HOW TO CREATE http.ResponseWriter, runtime.Producer)非常感谢
发布于 2018-09-20 16:57:37
正如Flimzy所提到的,您必须将字符串写入http.ResponseWriter,这可能就是WriteResponse函数所做的事情。
您提供的代码应该在某个地方从处理程序函数中调用:
func (...) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
// your code should be here and you can pass the http.ResponseWriter
}发布于 2018-09-21 23:50:25
非常感谢你们,你们帮了我很大的忙。它完全像你所说的那样工作,但在go-swagger中略有不同。
我的处理程序被更新为返回一个自定义的"ResponderFunc“,然后我可以直接将我的输出写入其中。效果很好,这是我的代码……
//Handle a 200 by sending the list of plans back as json
return middleware.ResponderFunc(func(rw http.ResponseWriter, pr runtime.Producer) {
rw.WriteHeader(200)
rw.Write(byteArrayPlan)
})https://stackoverflow.com/questions/52418875
复制相似问题