Я строил API с GO, который извлекает некоторые данные из базы данных MongoDB и отвечает JSON
Так что все работает нормально, пока я не вставлю строку «Содержимое», и проблема кажется, ограничивается почтальоном. Почтальон застревает в «Запросе на отправку», если строка Содержания слишком длинная.
type Article struct {
Id primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
Title string `json:"title,omitempty" bson:"title,omitempty"`
Content string `json:"content,omitempty" bson:"content,omitempty"`
Imgurl string `json:"imgurl,omitempty" bson:"imgurl,omitempty"`
}
func ArticleById(c *gin.Context) {
id, _ := primitive.ObjectIDFromHex(c.Param("id"))
article := Article{}
ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
collection.FindOne(ctx, Article{Id: id}).Decode(&article)
//--------------------THIS WORKS FINE
fmt.Println(article.Content)
//--------------------THIS WORKS FINE TOO
fmt.Println(gin.H{
"article": gin.H{
"title": article.Title,
"imgurl": article.Imgurl,
//---------THIS IS THE PROBLEM LINE
"content": article.Content},
})
//--------------------THIS WORKS WITH SHORT STRINGS ONLY (IN POSTMAN)
c.JSON(200, gin.H{
"article": gin.H{
"title": article.Title,
"imgurl": article.Imgurl,
//---------THIS IS THE PROBLEM LINE
"content": article.Content},
})
}
Вот краткое описание проблемы, что работает, а что нет.
- Проблема не похожа на проблему с базой данных, я могу напрямую печатать содержимое
- Я могу распечатать его после сопоставления через gin.H
- Работает нормально, если я опускаю "Content"
- Кажется, работает нормально (с почтальоном) даже с контентом до Content линия достигает определенной длины. более короткая строка работает отлично, даже более короткие многострочные тексты работают нормально.
- Все работает нормально, если я нажму на него из браузера, проблемы возникают только у почтальона.
- Работает и из CURL
- Прекрасно работает, когда я использую ту же базу данных из Node.JS, Express api с почтальоном.
Где именно проблема? Что я могу попробовать?