Пар с несколькими параметрами
У меня проблемы с несколькими параметрами. Я в порядке с передачей одного, но не уверен в том, чтобы передать несколько. У меня есть этот код JS на веб-странице:
$.getJSON('api/vendor/countryVendors/'+country+'&'+resourceType, function(result){}
И следующее в моем контроллере Vapor:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.parameters.next(String.self)
let resourceTypeString = try req.parameters.next(String.self)
не уверен, что созданный мной URL-адрес неправильный, мой код Swift или оба
1 ответ
Решение
Похоже, вы пытаетесь передать параметры строки запроса, которые отличаются от параметров пути маршрута. В этом случае оба фрагмента неверны.
Строковые параметры запроса - это пары ключ / значение, которые добавляются в конец URL, например:
/my/url/path?key=value&key1=value1
Таким образом, ваш URL в вашем коде JS должен выглядеть следующим образом:
'api/vendor/countryVendors?country='+country+'&resourceType='+resourceType
Чтобы получить параметры строки запроса из URL-адреса, переданного в обработчик маршрута, используйте request.query
собственность и .get(_:at:)
метод:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.query.get(String.self, at: "country")
let resourceTypeString = try req.query.get(String.self, at: "resourceType")
// Other code...
}