Обрабатывать тело сообщения с помощью Iris-Go
Я новичок в Golang, я делал несколько тестов кода для создания REST API с использованием Iris Framework, я пытаюсь получить данные тела из Post в мой API, но не могу заставить его работать, я прочитал Обвязка тела http://iris-go.com/body_binder/ и последующие примеры. В результате я получаю пустую структуру:
Мой код:
package main
import (
"github.com/kataras/iris"
"fmt"
)
type PostAPI struct {
*iris.Context
}
type Lead struct {
fbId string
email string
telefono string
version string
mac string
os string
}
func (p PostAPI) Post(){
lead := Lead{}
err := p.ReadJSON(&lead)
if (err != nil) {
fmt.Println("Error on reading form: " + err.Error())
return
}
fmt.Printf("Post! %v", lead)
}
func main() {
iris.API("/", PostAPI{})
iris.Listen(":8080")
}
Пост:
curl -H "Content-Type: application/json" -X POST -d '{"fbId": "werwer","email": "werwer@gmail.com","telefono": "5555555555","version": "123","mac": "3j:3j:3j:3j","os": "uno bien chido"}' http://0.0.0.0:8080/
Результат:
Post! { }
Что я делаю неправильно?
1 ответ
Решение
Вы должны попытаться экспортировать поля с тегами JSON в вашей структуре, т.е.
type Lead struct {
FbId string `json:"fbId"`
Email string `json:"email"`
Telefono string `json:"telefono"`
Version string `json:"version"`
Mac string `json:"mac"`
Os string `json:"os"`
}