Пар с несколькими параметрами

У меня проблемы с несколькими параметрами. Я в порядке с передачей одного, но не уверен в том, чтобы передать несколько. У меня есть этот код 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...
}
Другие вопросы по тегам