//
// ContentView.swift
// AsyncAwaitAPIDemo
//
// Created by Joynal Abedin on 2/11/23.
//
import SwiftUI
struct ContentView: View {
@State private var bookName: String = ""
var body: some View {
Text(bookName)
Button {
Task {
let (data, _) = try await URLSession.shared.data(from: URL(string: "https://devilarticle.com/api/LibraryService/GetAllBook")!)
let decodedResponse = try? JSONDecoder().decode(Response.self, from: data)
bookName = decodedResponse?.data[0].bookName ?? "can not fetch"
}
} label: {
Text("Fetch bookName")
}
}
}
#Preview {
ContentView()
}
Response Model
//
// Response.swift
// DataTaskAPIDemo
//
// Created by Joynal Abedin on 1/11/23.
//
import Foundation
struct Response: Codable {
var responseCode: Int
var result: String
var errormessage: String?
var data: [BookList]
}
struct BookList: Codable {
var id: Int
var bookId: Int
var bookName: String
var availableCopyNumber: Int
}