Во многих средах (или ядро языка во многих современных языках программирования) есть некоторый инструмент для простого создания URL.Например, предположим, что у вас есть схема (http
), домен (www.example.com
), базовый путь API (/api/v1/
), и теперь вы хотите сгенерировать несколько URL-адресов для разных конечных объектов API:
Вкл.В Android это можно сделать с помощью Uri.Builder
:
public MyClass()
{
this.builder = new Uri.Builder()
.scheme("http")
.authority("www.exmaple.com")
.path("/api/v1/");
}
public void customerList()
{
request(this.builder.appendPath("customers").build().toString());
}
public void getCustomer(int id)
{
request(this.builder.appendPath("customers/" + id).build().toString());
}
public void orderList()
{
request(this.builder.appendPath("orders").build().toString());
}
public void getOrder(int id)
{
request(this.builder.appendPath("orders/" + id).build().toString());
}
Какой класс следствия существует в iOS для этой цели?Некоторый быстрый поиск в Google не смог найти ответ, и все, что я нашел в StackOverflow, было [ Создание URL-адреса в вопросе Objective-C ), в котором просто используется форматирование строки.В идеале я бы предпочел избегать решения для форматирования строк, поскольку оно могло бы сломаться, если бы кто-то, например, набрал www.example.com/
для домена (с дополнительной косой чертой), потому что нет контекста и класса, проверяющего ввод.
Я бы предположил NSURL
, вероятно, имеет некоторую функциональность, такую как то, что я ищу, но не мог понять, как правильно ее использовать. В документации Apple по классу упоминается, что URL-адрес обладает схемой, пользователем, паролем, хостом, портом и т. Д. (Всех членов, которых я ожидаю от правильного компоновщика URL-адресов), но не упоминается, как установитьих.