迁移指南 1.x.x -> 2.0.x
API 变更
实例化
之前(1.1.x)
let bookingManager = CNIBookingManager(
username: "<username>",
password: "<password>",
consumerKey: "<consumerKey>",
environment: "staging")
之后(2.0.x)
let bookingManager = CNIBookingManager(
environment: .staging,
apiToken: token,
isTesting: true)
每种环境的 apiToken
将单独提供。
获取预订
之前(1.1.x)
bookingManager.getBookingsFor(
guestId: "1234",
success: { (itineraries: [CNIBooking]) in
},
failure: { (error: Error) in
}
)
之后(2.0.x)
let source = "CYTRIC_MOBILE"
let travelerId = "1234"
let partnerId = "5678"
bookingManager.getBookings(
source: source,
travelerID: travelerId,
partnerPrimaryId: partnerId,
partnerSecondaryIds: nil,
success: {
(response: CNIResponse<[CNIBooking]>) in
},
failure: {
(response: CNIResponse<CNIStatus>) in
}
)
重要通知:source
参数告诉 API 预订来自哪里。此参数存在于以下情况,例如当图书馆客户端从不同来源向我们发送预订时。
例如,Cytric 应该像上述示例中所述,对于所有预订使用 "CYTRIC_MOBILE"
。
创建预订
之前(1.1.x)
let guest: CNIGuest = ...
let hotel: CNIHotel = ...
let stay: CNIStay = ...
let data = ["guest": guest.deserialize(),
"hotel": hotel.deserialize(),
"stay": stay.deserialize()]
bookingManager.postBookingWith(
data: data,
success: { (result: Bool) in
},
failure: { (error: Error) in
}
)
之后(2.0.x)
let booking: CNIBooking = ...
let source = "CYTRIC_MOBILE"
bookingManager.postBooking(
source: source,
booking: booking,
completion: { (response: CNIResponse<CNIStatus>) in
}
)
重要通知:source
参数告诉 API 预订来自哪里。此参数存在于以下情况,例如当图书馆客户端从不同来源向我们发送预订时。
例如,Cytric 应该像上述示例中所述,对于所有预订使用 "CYTRIC_MOBILE"
。
删除预约
之前(1.1.x)
let guestId = "1234"
let reservationNumber = "EU-1337"
bookingManager.deleteBookingWith(
guestId: guestId,
reservationNumber: reservationNumber,
success: { (result: Bool) in
},
failure: { (error: Error) in
}
)
之后(2.0.x)
let travelerId = "1234"
let partnerId = "5678"
let reservationNumber = "EU-1337"
let source = "CYTRIC_MOBILE"
bookingManager.cancelBooking(
source: source,
travelerId: travelerId,
reservationNumber: reservationNumber,
partnerPrimaryId: partnerId,
partnerSecondaryIds: nil,
completion: { (response: CNIResponse<CNIStatus>) in
}
)
重要通知:source
参数告诉 API 预订来自哪里。此参数存在于以下情况,例如当图书馆客户端从不同来源向我们发送预订时。
例如,Cytric 应该像上述示例中所述,对于所有预订使用 "CYTRIC_MOBILE"
。
基本信息
API响应
每个Itineraries API的请求都会返回CNIResponse&CNIStatus
。
你可以通过检查CNIResponse.isSuccessful
来验证请求是否成功。如果HTTP响应状态码不是2XX,它会返回false
。
想要获取详细的接口响应内容,可以使用CNIStatus
。
let response: CNIResponse<CNIStatus> = ...
let status: CNIStatus = response.result
如果请求失败(CNIResponse.isSuccessful == false
),可以通过检查CNIStatus.reason
获取更详细信息。