0

我正在使用 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)

非常感谢

4

2 回答 2

0

非常感谢你们两位,你们很有帮助。它的工作方式与您所说的完全一样,但在大摇大摆的情况下略有不同。

我的处理程序已更新为返回一个自定义的“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)
    })
于 2018-09-21T15:50:25.017 回答
0

正如 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-20T08:57:37.383 回答