Чтобы понять веб-сервисы, мы начнем с основ сетевого взаимодействия.
Клиенты могут подключаться к соответствующему серверу с помощью URL-адреса, который содержит;
https: // - SCHEME = указывает, как будет происходить подключение.
* HTTP - это протокол для передачи гипертекстовых документов во всемирной паутине. HTTPS - это безопасная (зашифрованный поток данных) версия HTTP.
medium.com / - HOST = получает наш запрос на нужный компьютер
@ vuralkaan / - PATH = наша конечная точка
Но URL-адрес может содержать следующие элементы;
scheme: [// [пользователь [: пароль] @] хост [: порт]] [/ путь] [? query] [# фрагмент]
Следовательно, DNS поможет определить фактический IP-адрес сервера.
Допустим, мы собираемся использовать Dog API в нашем приложении. И у нас есть
let urlString: = https://dog.ceo/api/breeds/image/random '
URL для получения случайного изображения. Нам нужно преобразовать нашу строку в URL. В быстром темпе мы можем сделать это с любой строкой, используя
let url = URL (строка: urlString)
Но точнее, нам нужно использовать URLComponents, как показано ниже;
var urlComponents = URLComponents ()
urlComponents .scheme = «https»
- Мы можем добавить все элементы, как мы упоминали выше. (хост, путь, запрос…)
Мы также можем добавлять элементы к любому URL-адресу с помощью метода appendPathComponent (). URLComponent может разделять URL-адреса, например, запрос, хост, путь…
Чтобы сделать сетевой запрос, мы используем объект URLSession, который предоставляет общее свойство. (синглтон)
URLSession вызывает "запрос": ЗАДАЧА
- DataTask: возвращает данные из сети непосредственно в память в качестве экземпляра datastruct.
- DownloadTask: работает аналогично DataTask, за исключением того, что данные хранятся непосредственно в файле на устройстве.
- UploadTask: чтобы загрузить файл на любой сервер.
- StreamTask: для получения непрерывного потока данных с сервера.
После создания задачи нам нужно запустить эту задачу, вызвав resume ()
Если мы собираемся использовать данные, поступающие из HTTP; App Transport Security блокирует данные, поступающие по протоколу HTTP. На самом деле некоторые серверы все еще используют HTTP.
Нам нужно создать ключ, как показано ниже в info.plist
API дает вам карту того, как выглядит метод. Веб-сервис может содержать несколько API.
JSON - это формат данных, который часто используется для отправки данных в веб-службу и обратно.
Есть 2 способа обработки данных JSON в iOS.
- Сериализация JSON
- Кодируемый
Сериализация JSON
Преобразует данные JSON в быстрые словари и обратно. Объект JSON рассматривается как словарь.
- Вам нужно сопоставить все ключи вручную
- Вам нужно все перевести, чтобы уместить в словарь
Кодируемый
Данные преобразуются в структуру, из которой затем можно извлекать отдельные значения. Codable - это более современный подход. Codable даже позволяет конвертировать между быстрыми типами и другими форматами, такими как XML или пользовательский тип.
- Прямое соответствие
- Если имена свойств JSON и нашей структуры не равны (например, если мы хотим использовать другое имя), нам нужно использовать CodingKeys для сопоставления всех параметров с соответствующими поле.