Обрабатывать тело сообщения с помощью 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"`
 }
Другие вопросы по тегам