Каков идиоматический c способ получения целочисленного значения из строки запроса в Echo? - PullRequest
0 голосов
/ 16 января 2020

У меня есть целочисленный параметр запроса "page", который по умолчанию равен 1. Я могу получить его из контекста Echo следующим образом:

var page int
pageString := c.QueryParam("page")
if pageString == "" {
    page = 1
} else {
    var err error
    page, err = strconv.Atoi(pageString)

    if err != nil {
        page = 1
    }
}

Хотя это работает, я бы предпочел сделать что-то вроде page := c.QueryParamInt("page", 1) но я не смог найти эквивалента в документах Echo. Должен ли я просто написать свою собственную функцию полезности или есть лучший способ?

Ответы [ 2 ]

1 голос
/ 16 января 2020

Если вы планируете анализировать много целочисленных параметров, лучше всего было бы написать свою собственную служебную функцию:

func QueryParamInt(c echo.Context, name string, default int) int {
  param := c.QueryParam(name)
  result, err := strconv.Atoi(param)
  if err != nil {
    return default
  }
  return result
}

Затем используйте ее так, как вам хочется.
Другие варианты - расширение контекст эха, подробнее об этом здесь .

1 голос
/ 16 января 2020

Вы можете попробовать что-то вроде:

qp := c.QueryParam("page")
page, err := strconv.Atoi(qp)
if err != nil {
        page=1
}

Вам не нужно писать так много ifelse. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...