Вы можете создать объект Url
, который отвечает за создание строки URL.
Вы можете создать URL, передавая выбранные параметры через конструктор.
Когда объект сконструирован, вы можете вызвать toString
, который объединит и вернет значения вместе.
class Url ( var protocol : Protocol,
var baseUrl : BaseUrl,
var apiEndpoint : ApiEndpoint,
var webUrl : WebUrl,
var requestEnvironment : RequestEnvironment) {
override fun toString() : String {
return protocol.value +
baseUrl.value +
apiEndpoint.value +
webUrl.value +
requestEnvironment.value
}
}
Чтобы добавить еще один уровень безопасности при работе с вашими строками, я позволил себе преобразовать их в перечисления. Это даст вам возможность ограничить возможные значения, которые можно установить:
enum class Protocol(val value : String) {
HTTP("http://"),
HTTPS("https://")
}
enum class BaseUrl(val value : String) {
BASE_PROD("url_prod"),
BASE_DEV("url_dev"),
BASE_TEST("url_test")
}
enum class ApiEndpoint(val value : String) {
GET_USER("endpoint_get_user"),
LOGIN("endpoint_login"),
REGISTER("endpoint_get"),
FETCH_HISTORY("endpoint_fetch_history")
}
enum class WebUrl(val value : String) {
HOME("path_home"),
BALANCE("path_balance"),
MANAGE_SUBSCRIPTION("path_manage_subscription")
}
enum class RequestEnvironment(val value : String) {
MOBILE("query_mobile"),
DESKTOP("query_desktop")
}
Наконец, вот пример того, как вы можете создать свой URL:
fun main() {
val url : Url = Url(Protocol.HTTP,
BaseUrl.BASE_DEV,
ApiEndpoint.GET_USER,
WebUrl.HOME,
RequestEnvironment.MOBILE);
println(url.toString())
}