Разница между host и baseurl в ktor

Я не могу полностью понять разницу между host и baseUrl в ktor. Мне нужно установить baseURL для моего проекта, и я прошел через this и this youtrack, но оба они предлагают немного другой подход, и я не понял, что выбрать. Я могу установить host = "baseurl" в defaultrequest, а затем просто использовать

httpClient.post<T> {
    url("suffix here")
}

и это работает. Но я не уверен, что это правильный способ, и если это так, значит ли это, что хост работает так же, как baseURL, который у нас есть в модификации и okhttp.


person Mohammed Hanif.    schedule 28.12.2020    source источник


Ответы (1)


То, что вы делаете, работает из-за способа реализации URLBuilder.takeFromUnsafe(). Эта функция отвечает за синтаксический анализ вашего "suffix here" значения в URL-адрес - она ​​делает это, устанавливая только те части URL-адреса, которые она может идентифицировать в строке, которую вы передаете. Подробнее см. URLParser.kt#28.

Это безопасно - да. Это хорошая идея? Я так не думаю. Это неявно и полагается на то, что будущие разработчики будут знакомы с подходом baseUrl, используемым другими библиотеками (okhttp и retrofit).

person davehenry    schedule 05.01.2021
comment
Привет. Спасибо за разъяснения. не уверен, что мне использовать, тогда какие-либо предложения? Я видел несколько живых приложений, в которых используется url($baseUrl\suffixhere), но мне это не кажется хорошей идеей - person Mohammed Hanif.; 06.01.2021