Параметры пути и их ограничения
В FastAPI у нас есть два основных варианта, как мы можем передать какое-то значение переменной внутрь нашей функции, которая соответствует этому роуту. Во-первых, это параметры пути, которые мы рассмотрели выше. Мы указываем их прямо здесь в строке в фигурных скобочках, потом дублируем соответственно их как аргумент этой функции, и все у нас работает.
Но у параметров пути есть некие ограничения. Во-первых, мы не сможем для них указать какое-то значение по умолчанию, которое будет принимать этот параметр пути. И мы не сможем сделать его необязательным.
Параметры запроса как альтернатива
Поэтому, если нам нужно устранить эти недостатки, мы можем воспользоваться вместо параметров пути так называемыми параметрами запроса. Чем они отличаются?
Параметры запроса, в отличие от параметра пути, отсутствуют внутри строки, которая соответствует адресу этого endpoint. Соответственно, для того чтобы добавить здесь этот параметр, например type, мы пишем просто его как аргумент к нашей функции и не указываем его в качестве пути. Вот он, наш type строка.
Смотрим, что произойдет теперь. В параметре пути, как вы видите, у нас нет этого параметра. Но при запросе к этой функции мы можем его передать вот таким образом, и здесь что-то мы можем указать и выполнить эту функцию.
Соответственно, просто как переменная, которая у нас будет, мы можем указывать более одной такой переменной параметра запроса. Обратите внимание, что каждый из этих параметров запроса является обязательным.
Если мы хотим сделать какой-то параметр запроса необязательным, мы можем написать здесь просто None. Как вы видите, теперь наш параметр запроса является необязательным. Также мы можем добавить какое-то значение по умолчанию, допустим "тест", для какого-то значения.
Как вы видите, здесь у нас идет значение по умолчанию "тест", и вот таким образом оно у нас используется. Вот такое отличие параметров пути от параметров запроса есть в FastAPI.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти