Computer >> Máy Tính >  >> Lập trình >> IOS

Làm thế nào để truy cập các dịch vụ RESTFul từ iOS / iPhone?


Để truy cập API REST nhanh chóng, chúng tôi cần thực hiện một loạt các bước bằng cách sử dụng cách kết nối mạng nhanh chóng, đó là sử dụng phiên URL và Tác vụ dữ liệu.

Rest là viết tắt của cụm từ Chuyển trạng thái đại diện, định nghĩa một số tập hợp các ràng buộc sẽ được sử dụng bởi các dịch vụ web. Trong thời gian nhanh chóng, chúng tôi có thể truy cập các dịch vụ web theo cách sau.

  • Trước hết, chúng ta cần tạo một đối tượng phiên, cấu hình mặc định.

let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
  • Sau đó, chúng tôi cần tạo Yêu cầu URL thuộc loại mà chúng tôi cần, nó có thể lấy, đăng, xóa hoặc đặt. Trong ví dụ này, chúng ta đang thấy loại "GET".

let url = URL(string: URLString)
//let url = NSURL(string: urlString as String)
var request : URLRequest = URLRequest(url: url!)
request.httpMethod = "GET"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
  • Khi chúng ta đã tạo xong đối tượng yêu cầu, chúng ta cần thực hiện dataTask, với URL mà chúng ta vừa tạo ở trên. Đây là cách phương thức dataTask hoàn chỉnh của chúng ta sẽ trông giống như bây giờ.

let dataTask = session.dataTask(with: url!) {
data,response,error in
   guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
   else { print("error: not a valid http response")
      return
   }
   switch (httpResponse.statusCode) {
      case 200: //success response.
      break
    case 400: break
      default: break
   }
}
dataTask.resume()
  • Giờ đây, chúng tôi có thể nhúng cái này vào một hàm và sử dụng trong mã của chúng tôi.

func hitAPI(_for URLString:String) {
   let configuration = URLSessionConfiguration.default
   let session = URLSession(configuration: configuration)
   let url = URL(string: URLString)
   //let url = NSURL(string: urlString as String)
   var request : URLRequest = URLRequest(url: url!)
   request.httpMethod = "GET"
   request.addValue("application/json", forHTTPHeaderField: "Content-Type")
   request.addValue("application/json", forHTTPHeaderField: "Accept")
   let dataTask = session.dataTask(with: url!) {
      data,response,error in
      // 1: Check HTTP Response for successful GET request
      guard let httpResponse = response as? HTTPURLResponse, let
      receivedData = data
      else {
         print("error: not a valid http response")
         return
      }
      switch (httpResponse.statusCode) {
         case 200:
            //success response.
            break
         case 400:
            break
         default:
            break
      }
   }
   dataTask.resume()
}

Lưu ý - Bạn có thể cần cho phép các ngoại lệ Bảo mật truyền tải trong tệp info.plist của mình để truy cập một số API.

Không có đầu ra nào được hiển thị trong ví dụ này vì cần có API để lấy một số dữ liệu.