iOS 플랫폼 에서 백 엔 드 인 터 페 이 스 를 호출 하 는 정확 한 자세

머리말
iOS 개발 을 하려 면 단일 컴퓨터 애플 리 케 이 션 을 하지 않 으 면 인터페이스 호출,즉 API 호출 을 피 할 수 없습니다.
이런 부분 에 대해 회사 마다 인 터 페 이 스 를 정의 하 는 형식 이 다 르 기 때문에 우리 의 코드 는 통용 되 지 못 한다.
심지어 사생활 을 맡 으 면 다양한 인터페이스 형식 을 만 날 수 있다.그렇다면 통용 되 지 않 는 형식 들 을 처리 하 는 일반적인 방법 이 있 을 까?
나 는 변 화 된 인터페이스 형식 에서 변 하지 않 는 것 을 찾 아 변 하지 않 는 것 을 설정 하여 변 하지 않 는 인터페이스 호출 방식 을 형성 하려 고 한다.
이런 변 하지 않 는 것들 은 다음 과 같은 몇 가 지 를 포함한다.
오류 코드
오류 메시지
업무 데이터
그리고 오류 코드 에 대해 다음 과 같은 몇 가지 유형 으로 나 눌 수 있다.
성공
실패
token 실효
이상 의 분석 을 바탕 으로 하나의 오픈 소스 라 이브 러 리 를 형성 하여 어느 정도 여러분 의 개발 에 편리 하 기 를 바 랍 니 다.
오픈 소스 주소:https://github.com/wochen85/FKApiInvoker
아래 에서 사용 하 는 상세 한 설명:
FKApiInvoker
iOS 플랫폼 네트워크 인터페이스 호출 패키지
설치 하 다.

pod 'FKApiInvoker'
쓰다
1.설정 을 초기 화 합 니 다.Appdelegate 의-(BOOL)application:(UIApplication*)application didFinishLaunching WithOptions:(nullable NSDictionary*)launchOptions 방법 에 넣 을 수 있 습 니 다.또는 배경 에서 돌아 오 는 json 칸 을 다음 과 같이 가정 합 니 다.

{"code":0,
"msg":"  ",
"data":{"name":"CHAT",
    "age":18}}
그 중에서 code 는 오류 코드(0 대표 처리 성공,127 대표 token 만 료)이 고 msg 는 알림 메시지 이 며 data 는 구체 적 인 업무 데이터 입 니 다.
그러면 다음 설정 을 합 니 다:

FKApiInvokerConfig* config = [[FKApiInvokerConfig alloc] initWithBaseUrls:@[@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org"] commonHeaders:@{@"test": @"test"} respCodeKey:@"code" respMsgKey:@"msg" respDataKey:@"data" successCode:0 tokenExpiredCode:127];
  [[FKApiInvoker sharedInvoker] configInvoker:config];
  [FKApiInvoker sharedInvoker].tokenExpiredBlk = ^{
    //token  ,      
  };
2.백 엔 드 API 호출

[FKApiInvoker fire:@"post" path:@"/personinfo/login" param:nil headers:headers body:body responseModelClass:[LoginResp class] success:^(LoginResp* model) {
    //    
  } failure:^(NSError *error) {
    //    
  }];
3.mock 데이터 사용

[FKApiInvoker fireWithMockData:mockData method:@"post" path:@"/personinfo/login" param:nil headers:headers body:body responseModelClass:[LoginResp class] success:^(LoginResp* model) {
    //    
  } failure:^(NSError *error) {
    //    
  }];
기타 상황
1.백 스테이지 에서 돌아 오 는 업무 데이터 와 오류 코드,오류 메시지 등급:

{"code":0,
  "msg":"  ",
  "name":"CHAT",
  "age":18}
설정 을 초기 화 할 때 다음 과 같이 변경 합 니 다:

FKApiInvokerConfig* config = [[FKApiInvokerConfig alloc] initWithBaseUrls:@[@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org",@"http://www.httpbin.org"] commonHeaders:@{@"test": @"test"} respCodeKey:@"code" respMsgKey:@"msg" respDataKey:nil successCode:0 tokenExpiredCode:127];
  [[FKApiInvoker sharedInvoker] configInvoker:config];
  [FKApiInvoker sharedInvoker].tokenExpiredBlk = ^{
    //token  ,      
  };
즉 respDataKey 매개 변수 전송 nil
2.유 니 버 설 헤드 가 설정 을 초기 화 한 후에 변화 가 생 길 수 있 습 니 다.이러한 상황 은 사용자 가 로그 인 한 후에 유 니 버 설 헤드 에 token 과 같은 필드 를 추가 해 야 합 니 다.
그러면 다음 과 같은 방법 을 호출 합 니 다.

[[FKApiInvoker sharedInvoker] configCommonHeaders:@{@"token": @"token string"}];
3.좀 더 유연 한 json 형식의 http 요청 이 필요 합 니까?
내 가 쓴 다른 라 이브 러 리 를 직접 사용 할 수 있다.
사실 FKapi Invoker 밑바닥 도 의존 하 는 JSonModelHttp 입 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기