Чтобы понять веб-сервисы, мы начнем с основ сетевого взаимодействия.

Клиенты могут подключаться к соответствующему серверу с помощью 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 для сопоставления всех параметров с соответствующими поле.