Получить конкретное поле из необработанного JSON в PATCH - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь создать метод PATCH для моего REST API. Я не могу понять, как я могу взять имя из необработанного поля JSON, чтобы использовать его в качестве параметра в запросе UPDATE, чтобы запрос мог знать, какое поле нужно обновить, потому что, в отличие от PUT, PATCH необходимо обновить только одно поле и не весь ряд в БД. Я использую SQLite3

EDIT: Код:

func PatchServer(c echo.Context) error {
    patchedServer := new(structs.Server)
    requestID := c.Param("id")
    if err := c.Bind(patchedServer); err != nil {
        return err
    }
    if reflect.TypeOf(patchedServer.Name).Kind() != reflect.String || reflect.TypeOf(patchedServer.Components).Kind() != reflect.Int {
        panic("Insert a string or an int")
    } else {
        sql := "UPDATE servers SET server_name = CASE WHEN ? IS NOT NULL THEN ? END WHERE id = ?"
        stmt, err := db.Get().Prepare(sql)
    if err != nil {
        panic(err)
    }
    _, err2 := stmt.Exec(patchedServer.Name, patchedServer.Name, requestID)
    if err2 != nil {
        panic(err2)
    }
    fmt.Println(patchedServer.ID, patchedServer.Name, patchedServer.Components)
    fmt.Println("Requested id: ", requestID)
    return c.JSON(http.StatusOK, "Patched!")
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...