Как передать textfield.text в параметр URL
Я хочу получить значения слова, переданного из textfield. URL выглядит так: https://api.dictionaryapi.dev/api/v2/entries/en/word. Значения приходят в формате json. Как передать textField.text вместо word параметра? Вот код:
struct URLQuery {
static func buildURL(baseURL: String, params: [String: String]) -> String? {
guard var components = URLComponents(string: baseURL) else {
return nil
}
let queryItems = params.map { element in
URLQueryItem(name: element.key, value: element.value)
}
if var componentsQueryItems = components.queryItems {
componentsQueryItems += queryItems
components.queryItems = componentsQueryItems
} else {
components.queryItems = queryItems
}
return components.url?.absoluteString
}
guard let word = wordTextField.text,
let urlString = URLQuery.buildURL(baseURL: "https://api.dictionaryapi.dev", params: [
"api":"v2",
"entries":"en",
"<word>": word]),
let url = URL(string: urlString)
Ответы (1 шт):
Автор решения: schmidt9
→ Ссылка
Здесь параметры передаются в виде компонентов url, поэтому можно сделать так
struct URLQuery {
static func buildURL(baseURL: String, params: String...) -> String? {
guard var url = URL(string: baseURL) else {
return nil
}
params.forEach {
url.append(path: $0)
}
return url.absoluteString
}
}
let text = "cat"
let urlString = URLQuery.buildURL(baseURL: "https://api.dictionaryapi.dev",
params: "api", "v2", "entries", "en", text)
Рузультат
https://api.dictionaryapi.dev/api/v2/entries/en/cat