智汀家庭云-iOS端:Network【网络层协议篇】

该博客详细介绍了iOS应用中网络请求的实现,包括ApiService的枚举定义、请求地址的设置、请求方法及参数处理。同时,展示了如何扩展Moya进行数据请求,以及封装的ApiServiceManager如何进行注册、登录等操作。此外,还提到了局域网内的请求地址判断方法。

1.ApiService介绍

文件路径:classes/Network/ApiService.swift

  • ApiService 请求携带参数
/// 接口枚举
enum ApiService {
    // login & register
    case register(country_code: String = "86", phone: String, password: String, captcha: String, captcha_id: String)
    case login(phone: String, password: String)
    case logout
    case captcha(type: CaptchaType, target: String, country_code: String = "86")
    case editUser(area: Area = AppDelegate.shared.appDependency.authManager.currentArea, user_id: Int, nickname: String = "", account_name: String, password: String)
    case bindCloud(area: Area, cloud_user_id: Int)
    /// 云端账号信息
    case cloudUserDetail(id: Int)
    /// 编辑云端账号信息
    case editCloudUser(user_id: Int, nickname: String = "")

    //sa
    case syncArea(syncModel: SyncSAModel)
    case checkSABindState(url: String)

    // device
    case deviceList(type: Int = 0, area: Area)
    case addDiscoverDevice(device: DiscoverDeviceModel, area: Area)
    case addSADevice(url: String, device: DiscoverDeviceModel)
    case deviceDetail(area: Area, device_id: Int)
    case editDevice(area: Area, device_id: Int, name: String = "", location_id: Int = -1)
    case deleteDevice(area: Area, device_id: Int)
    
    // scene
    
    case sceneList(type: Int = 0, area: Area = AppDelegate.shared.appDependency.authManager.currentArea)
    case createScene(scene: SceneDetailModel, area: Area = AppDelegate.shared.appDependency.authManager.currentArea)
    case sceneDetail(id: Int, area: Area = AppDelegate.shared.appDependency.authManager.currentArea)
    case editScene(id: Int, scene: SceneDetailModel, area: Area = AppDelegate.shared.appDependency.authManager.currentArea)
    case deleteScene(id: Int, area: Area = AppDelegate.shared.appDependency.authManager.currentArea)
    case sceneExecute(scene_id: Int, is_execute: Bool, area: Area = AppDelegate.shared.appDependency.authManager.currentArea)
    case sceneLogs(start: Int = 0, size: Int = 20, area: Area = AppDelegate.shared.appDependency.authManager.currentArea)

    ...
}
  • ApiService 请求IP地址(BaseUrl)
var baseURL: URL {
        switch self {
        case .logout, .login, .register, .captcha, .cloudUserDetail, .editCloudUser, .defaultLocationList, .areaList, .createArea:
            return URL(string: "\(cloudUrl)/api")!
 
        case .scanQRCode(_, let url, _, _, _
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值