Как отправить данные на сервер через формы swiftui и получить данные с сервера и вывести их в swiftui?

Для отправки данных на сервер через формы в SwiftUI и получения данных с сервера и вывода их в SwiftUI можно воспользоваться следующими шагами:

1. Создайте модель данных, которая будет представлять данные, отправляемые на сервер и получаемые с сервера. Например, можно создать структуру с параметрами, соответствующими полям формы.

struct FormData: Codable {
    var name: String
    var email: String
}

2. Создайте представление формы, где пользователь будет вводить данные. Используйте свойства состояния (@State) для отслеживания значений полей формы. Например, вы можете создать представление в SwiftUI с текстовыми полями для ввода имени и электронной почты.

struct FormView: View {
    @State private var name: String = ""
    @State private var email: String = ""

    var body: some View {
        VStack {
            TextField("Name", text: $name)
                .textFieldStyle(RoundedBorderTextFieldStyle())
            TextField("Email", text: $email)
                .textFieldStyle(RoundedBorderTextFieldStyle())
            Button("Submit") {
                // Вызов метода для отправки данных на сервер
                sendDataToServer()
            }
        }.padding()
    }
    
    func sendDataToServer() {
        // Создайте экземпляр объекта FormData, используя значения, введенные пользователем
        let formData = FormData(name: name, email: email)
        
        // Закодируйте объект FormData в JSON
        guard let encodedData = try? JSONEncoder().encode(formData) else {
            print("Failed to encode data.")
            return
        }
        
        // Создайте запрос на сервер с закодированными данными в теле запроса
        guard let url = URL(string: "https://example.com/submit-form") else {
            print("Invalid URL.")
            return
        }
        var request = URLRequest(url: url)
        request.httpMethod = "POST"
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
        request.httpBody = encodedData
        
        // Отправьте запрос на сервер
        URLSession.shared.dataTask(with: request) { data, response, error in
            // Обработайте ответ с сервера и получите данные
            if let data = data {
                if let decodedData = try? JSONDecoder().decode(FormData.self, from: data) {
                    // Обновите пользовательский интерфейс с полученными данными
                    DispatchQueue.main.async {
                        self.name = decodedData.name
                        self.email = decodedData.email
                    }
                } else {
                    print("Failed to decode response data.")
                }
            } else {
                print("No response from server.")
            }
        }.resume()
    }
}

3. Создайте основное представление приложения и включите представление формы.

struct ContentView: View {
    var body: some View {
        NavigationView {
            FormView()
        }
    }
}

4. Сбилдить и запустить приложение.

Приложение должно отобразить форму с текстовыми полями для ввода имени и электронной почты, а также кнопку "Submit". При нажатии на кнопку отправится запрос на сервер с данными, введенными пользователем. Затем сервер должен обработать запрос и вернуть данные в формате JSON. Приложение должно раскодировать полученные данные и обновить текстовые поля формы соответствующими значениями.

Обратите внимание, что вам нужно заменить URL на фактический адрес вашего сервера и настроить сервер для обработки входящих запросов. Также обратите внимание на обработку ошибок при отправке запроса и раскодировании данных.