Я создал код в golang, который должен поддерживать API конечных точек (через запросы get). Это документация по конечной точке API:
https://developer.dotdigital.com/docs/get-all-campaigns
Код выглядит так:
type Campaign struct {
Id int `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Subject string `json:"subject,omitempty"`
FromName string `json:"fromName,omitempty"`
FromAddress struct {
Id int `json:"id,omitempty"`
Email string `json:"email,omitempty"`
}
HtmlContent string `json:"htmlContent,omitempty"`
PlainTextContent string `json:"plainTextContent,omitempty"`
ReplyAction string `json:"replyAction,omitempty"`
IsSplitTest bool `json:"isSplitTest,omitempty"`
Status string `json:"status,omitempty"`
}
func (dcfg DotmailerApiConfig) GetContacts2() ([]*dotmailermodels.Contact) {
var (
allContacts, respContacts []*dotmailermodels.Contact
selected = 1000
skip = 0
err error
)
for true {
url := dcfg.Url + fmt.Sprintf("v2/contacts?withFullData=%s&select=%s&skip=%s",
strconv.FormatBool(false),
strconv.Itoa(selected),
strconv.Itoa(skip))
resp := dcfg.GetRequesDotmailertBuilder(url)
err = json.Unmarshal(resp, &respContacts)
if err != nil {
Error.Println(err) // just error trace
}
allContacts = append(allContacts, respContacts...)
if len(respContacts) == 1000 {
skip += 1000
respContacts = nil
continue
}
break
}
return allContacts
}
Когда я бегу на своем ПК, я получаю правильный ответ. Когда я использую его в Lambda, я получаю эту ошибку:
[ERROR] 2019/03/24 18:37:26 dotmailergetrequests.go:110: json: cannot unmarshal object into Go value of type []*dotmailermodels.Campaign
У вас есть идеи, почему?