我正在使用 Goa v3 设计一个端点,允许我通过 POST 请求上传文件(更准确地说是图像)multipart/form-data。我已声明如下Service:
var _ = Service("images", func() {
HTTP(func() {
Path("/images")
})
Method("upload", func() {
HTTP(func() {
POST("/")
MultipartRequest()
})
Payload(func() {
Description("Multipart request Payload")
Attribute("File", Bytes, "File")
})
Result(ImageList)
})
})
我运行goa gen和goa example命令来生成样板代码。除了cmd目录之外,example代码还生成images.go主文件和一个multipart.go用于声明编码器和解码器逻辑的文件,例如:
func ImagesUploadDecoderFunc(mr *multipart.Reader, p **images.UploadPayload) error {
// Add multipart request decoder logic here
return nil
}
我显然可以使用mr.NextPart()并获取对图像文件的引用,但我仍然不确定应该如何将其映射到类型Bytes中的字段images.UploadPayload(或者也许我应该声明另一种类型的字段来处理文件??)。
我在果阿文档中找不到任何示例。
九州编程
相关分类