Home > Software design >  The request body does not reach golang fiber
The request body does not reach golang fiber

Time:08-19

When I send a POST request, the server does not receive the request body. Only the id is added to the database

"package lists

import (
"github.com/fishkaoff/fiber-todo-list/pkg/common/models"

"github.com/gofiber/fiber/v2"
)

type AddTaskRequestBody struct {
    title string `json:"title"`
    description string `json:"description"`
}

func (h handler) Addtask(c *fiber.Ctx) error {
    body := AddTaskRequestBody{}

    if err := c.BodyParser(&body); err != nil {
        return fiber.NewError(fiber.StatusBadRequest, err.Error())
    }

    title := body.title
    description := body.title
    if title == "" || description == "" {
        return fiber.NewError(fiber.StatusBadRequest)
    }
    task := models.NewList(title, description)

    if result := h.DB.Create(&task); result.Error != nil {
        return fiber.NewError(fiber.StatusNotFound, 
    }
    return c.Status(fiber.StatusCreated).JSON(&task)
}"

postman request: enter image description here

CodePudding user response:

I think you need to take a look on what is inside this function exactly

task := models.NewList(title, description)

Most probably it has an issue because if the body is not parsed correctly you will not reach the insertion and created-status return statement

CodePudding user response:

the fields of the structure AddTaskRequestBody are not being exported. That may be the problem. Shouldn't title and description be uppercase - (https://golangbyexample.com/exported-unexported-fields-struct-go/)

type AddTaskRequestBody struct { title string json:"title" description string json:"description" }

  • Related