Как организовать Url API в Objective-C

Я пытаюсь организовать все мои url-адреса API в одном файле, что я делаю, я создал файл заголовка и добавил следующие строки

#define LOGIN_URL           @"http://192.168.100.100/api/login"
#define SIGNUP_URL          @"http://192.168.100.100/api/signup"
#define PRODUCTS_URL        @"http://192.168.100.100/api/products"
#define EMPLOYEE_URL        @"http://192.168.100.100/api/employee"
#define GET_PRODUCTS_URL    @"http://192.168.100.100/api/getproducts"
#define CLIENTS_URL         @"http://192.168.100.100/api/clients"
на base url is http://192.168.100.100/ который будет продолжать меняться, мне всегда нужно найти и заменить IP-адрес. Есть ли лучшие способы организации Url-адресов API?

2 ответов


Эй, вы можете организовать все ваши Url-адреса API, используя следующий код

#define SITE_URL(url) @"http://192.168.100.100/api" url

#define LOGIN_URL           SITE_URL("/login")
#define SIGNUP_URL          SITE_URL("/signup")

#define PRODUCTS_URL        SITE_URL("/products")
#define EMPLOYEE_URL        SITE_URL("/employee")
#define GET_PRODUCTS_URL    SITE_URL("/getproducts")
#define CLIENTS_URL         SITE_URL("/clients")

мне лично нравится использовать константы над #define

вот как я бы сделал то, что вы пытаетесь сделать.

MyAppConstants.h

extern NSString * const  kLOGIN_URL;  
extern NSString * const  kSIGNUP_URL; 
extern NSString * const  kPRODUCTS_URL;
extern NSString * const  kEMPLOYEE_URL;
extern NSString * const  kGET_PRODUCTS_URL;
extern NSString * const  kCLIENTS_URL;

MyAppConstants.м

NSString * const  kLOGIN_URL           = @"/login"
NSString * const  kSIGNUP_URL          = @"/signup"
NSString * const  kPRODUCTS_URL        = @"/products"
NSString * const  kEMPLOYEE_URL        = @"/employee"
NSString * const  kGET_PRODUCTS_URL    = @"/getproducts"
NSString * const  kCLIENTS_URL         = @"/clients"

тогда, когда я использую константы, я бы сделал что-то вроде...

NSURL *loginURL = [NSURL URLWithString:[baseUrl stringByAppendingString:kLOGIN_URL]];