Я все еще новичок в Swift, у меня проблема с URL API.У меня есть список URL API, где я помещаю в отдельный класс, который является класс ServerApi.Причина в том, что мне легче изменить URL-адрес, если это необходимо, поскольку он уже помещен в один файл.код выглядит следующим образом:
class ServerApi {
private static let BASE_URL = "http://myurl";
static var API_LOGIN = BASE_URL + "/auth/local";
static var API_SIGNUP = BASE_URL + "/auth/local/register"
static var API_PLACE = BASE_URL + "/place"
static var API_ONE_PLACE = BASE_URL + "/place/%s"
static var API_IMAGE = BASE_URL + "/%s"
private static let URL_PATH = "http://myurl2";
static var URL_CREATE_WALLET = URL_PATH + "/wallet";
static var URL_RELOAD_WALLET = URL_PATH + "/wallet/%s/reload";
static var URL_PAYMENT = URL_PATH + "/wallet/%s/payment";
static var URL_WALLET_ACCOUNT = URL_PATH + "/wallet/%s";
static var URL_USER_TRANSACTION = URL_PATH + "/wallet/%s/transactions";
static var URL_ORDER = URL_PATH + "/orders";
static var URL_CABINET = URL_PATH + "/cabinets/%s";
static var URL_CREATE_PAYMENT = URL_PATH + "/payments";
static var URL_IMAGE = URL_PATH + "/payments";
}
%s
фактически обозначает идентификатор пользователя, где он может изменяться в зависимости от пользователя.я просто заявляю как% s, потому что я понятия не имею, что на самом деле должно быть.Я использую Alamofire, чтобы вернуть данные.Ниже приведен один из примеров, где я вызываю URL, который не нуждается в user_id
, который в URL-адресе равен %s
:
Alamofire.request(ServerApi.API_LOGIN, method: .post, parameters: parameters, encoding: URLEncoding.default).validate(statusCode: 200..<300).responseJSON { response in
if (response.result.isSuccess){
if let value = response.result.value {
print(value)
Helper.helper.switchToViewController(Navigation: "mainVC")
let dataObject:Dictionary = value as! Dictionary<String, Any>
print(dataObject)
let balanceObject:String = dataObject["jwt"] as! String
print ("balance object of jwt is : \(balanceObject)")
UserDefaults.standard.setValue(value: balanceObject, key: "jwt")
print(UserDefaults.standard.getValue(key: "jwt"))
} else {}
Итак, если в качестве примера я хочу вызвать URL_WALLET_ACCOUNT
там, где это необходимо user_id (%s)
для завершения URL.я не знаю, как заменить% s из URL.Ниже приведен предыдущий код, прежде чем я разделю список URL
let user_id = "123456"
func viewBalance() {
Alamofire.request ("http://myurl2/wallet/\(user_id)").responseJSON { response in
print (response)
if let balanceJSON = response.result.value {
let dataObject:Dictionary = balanceJSON as! Dictionary<String, Any>
print(dataObject)
let balanceObject:Dictionary = dataObject["data"] as! Dictionary<String, Any>
let balance:String = balanceObject["account_balance_display"] as! String
let newBalance = balance.dropFirst(2)
self.balanceLabel.text = "\(newBalance)"
}
}
}