-
Almofire - json object arraydeveloping diary 2021. 3. 7. 22:14
[{"sd":"sdfdsf", "a": "dsdds" }, {"sd":"dsf", "a": "rrr" }....]과 같은 형태의 파라미터를 서버에 넘겨줘야 했다.
그런데 내가 형성해 놓은 코드는
파라미터를 딕셔너리 형태로 받아서 json serialization을 하는 구조였다.
그래서 시도해본 것
1.딕셔너리 형태처럼 만들어주기
["a": [MyModel]]과 같이 a라는 키 값을 임의로 넣어주고 MyModel에는 모델형태 데이터를 바로 넣었다.
그리고 a라는 키값으로 value를 빼냄.
그리고 뺴낸 value를 json serialization, json encoder를 이용해 json화 하려 했지만 타입이 Any인 탓에 되지 않음.
2. 다시 공식문서 참고
MVVM패턴을 따라서 만들어놓은 서버 통신 파일들의 구조를 패스하고
alamofire에 나와 있는 usage에 나와있는대로 코드를 작성해봤다.
이것처럼 내가 라우터, constants파일 등을 지나쳐서 통신을 하게끔 한 과정을 모두 무시하고
바로 코드로 url, method. encoder등을 선언해 사용했다.
이 방법을 써야겠다고 생각한 이유는 데이터 모델 형태로 파라미터를 만들고 이걸 encoding할 수가 있어야하는 것이 내 목적이었고
이 코드대로라면 할 수 있을 것 같았다.
테스트해보니 문제는 해결이 됐다.
- 느낀점
기존 디자인패턴으로 형성해놓은 과정들이 만약 라이브러리의 업데이트로 필요 없는 과정으로 변했을 경우 이 부분은 그럼 나중에 유지보수하는 것이 더 어려워지는 것이 아닐까하는 생각이 들었다.
내가 지금 서버에 보내는 파라미터 형태는 딕셔너리 형태의 파라미터이어야 한다라는 전제조건이 있는 것이었지만, 이번에는 그 예외 경우가 발생했고 나는 내가 만들어 놓은 디자인패턴을 무시한 예외의 수를 만들게됐다.
디자인패턴을 만들 때는 정말로 많은 시간이 투자돼야 하는 것 같다.
참고
github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#using-alamofire
'developing diary' 카테고리의 다른 글
뷰 - 모델 설계 (0) 2021.03.11 Hashable (0) 2021.03.09 date 같은 날짜 찾기 (0) 2021.03.02 서버 로그 (0) 2021.03.02 if let (0) 2021.02.28