如何在Objective-C中组织API Url

6 api url objective-c code-organization ios

我试图在一个文件中组织我的所有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"
Run Code Online (Sandbox Code Playgroud)

在这里,base url就是http://192.168.100.100/它会不断改变,我总是要查找和替换的IP地址.有没有更好的方法来组织API Url?

ico*_*ter 13

嘿,您可以使用以下代码整理所有API Url

#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")
Run Code Online (Sandbox Code Playgroud)

  • 我会把它放回原处.需要轻松更改IP地址(用于故障转移).谁在乎URL的部分内容是否相似? (2认同)

Chr*_*ner 6

我个人喜欢使用常数 #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;
Run Code Online (Sandbox Code Playgroud)

MyAppConstants.m

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"
Run Code Online (Sandbox Code Playgroud)

然后,当我使用常量时,我​​会做类似......

NSURL *loginURL = [NSURL URLWithString:[baseUrl stringByAppendingString:kLOGIN_URL]];
Run Code Online (Sandbox Code Playgroud)