Go REST API обрабатывает пустые параметры URL - PullRequest
0 голосов
/ 03 октября 2019

Интересно, как обрабатывать конечную точку с заданным пустым параметром, например, одна конечная точка моего API -

...url/item/{id}

, а ее реализация -

func GetItem(c *gin.Context){
    id := c.Param("id")
    ...
}

Должен ли я обрабатывать пустой id с помощью

if id == ""{
    //handle if empty
    return
}

или нет необходимости проверять его?

Я думаю об этом, потому что вы можете вызвать метод конечной точки из модульного теста, и вопрос в том,можно как-то взломать и вызвать конечную точку с пустым id, что может вызвать некоторые фатальные ошибки?

1 Ответ

0 голосов
/ 03 октября 2019

Вы должны предотвратить это на своем уровне маршрутизации, а не когда вы получаете параметры пути.

router.GET("/user/:name", func(c *gin.Context) {
        name := c.Param("name")
        c.String(http.StatusOK, "Hello %s", name)
    })

В этом фрагменте из документации gin в основном описывается аналогичная конечная точка get, где он ожидает, что у вас будет параметр :name, который сопоставляется с вашим параметром id. Если маршрут вызывается без параметра id, он не будет направлен к этой функции.

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