[swift] Swift Moya에서 API 문서 생성하기

Swift Moya는 Swift로 작성된 간단하고 직관적인 네트워킹 라이브러리입니다. 이 라이브러리를 사용하면 API 호출 로직을 쉽게 작성하고 관리할 수 있습니다. 이번에는 Swift Moya를 사용하여 API 문서를 생성하는 방법을 알아보겠습니다.

1. MoyaProvider 설정

처음으로 할 일은 MoyaProvider를 설정하는 것입니다. MoyaProvider는 네트워킹을 처리하는 주요 클래스입니다. API를 호출하고 응답을 받기 위해 MoyaProvider를 사용합니다.

let provider = MoyaProvider<MyAPI>()

위의 코드에서 MyAPI는 Moya의 타겟(Target) 프로토콜로, API 호출에 대한 세부 정보를 정의합니다.

2. API 호출

API 문서를 생성하려면 몇 가지 예제 API 호출을 만들어야 합니다. 아래의 예제를 참고하여 API 호출을 작성해 보세요.

provider.request(.getUser(id: 123)) { result in
    switch result {
    case let .success(response):
        do {
            let user = try response.map(User.self)
            // User 객체를 사용하여 작업 수행
        } catch {
            // 오류 처리
        }
    case let .failure(error):
        // 오류 처리
    }
}

위의 코드에서 .getUser(id: 123)MyAPI 타겟 내에서 정의된 API endpoint를 호출하는 예시입니다. 반환된 응답을 사용하기 위해 JSON을 User 객체로 매핑하는 작업이 이어집니다.

3. API 문서 생성

Moya는 SwiftyMarkdown라는 라이브러리를 사용하여 Markdown 형식으로 API 문서를 생성할 수 있습니다. 아래의 코드를 참고하여 API 호출 및 응답 정보를 Markdown 형식으로 작성해 보세요.

import SwiftyMarkdown

let markdown = SwiftyMarkdown(string: "")

// API 호출 정보 작성
markdown.title("API 호출")
        .codeBlock("""
        provider.request(.getUser(id: 123)) { result in
            switch result {
            case let .success(response):
                // 응답 처리
            case let .failure(error):
                // 오류 처리
            }
        }
        """)

// 응답 정보 작성
markdown.title("응답")
        .codeBlock("""
        {
            "id": 123,
            "name": "John Doe",
            "email": "john.doe@example.com"
        }
        """)

// Markdown 문서 출력
print(markdown.attributedString())

위의 코드에서는 SwiftyMarkdown를 사용하여 Markdown 형식의 문서를 생성하고 출력합니다. API 호출 및 응답 정보를 코드 블록으로 작성했습니다.

이제 Markdown 형식으로 작성된 API 문서를 확인할 수 있습니다.

결론

Swift Moya를 사용하여 API를 호출하고 문서를 생성하는 방법에 대해 알아보았습니다. Moya의 간결한 문법과 SwiftyMarkdown을 활용하면 개발 프로세스를 좀 더 효율적으로 관리할 수 있습니다. 문서화는 프로젝트의 가독성을 높이고 협업을 원활하게 만드는 중요한 요소이므로, API 문서 생성 과정을 잘 이해하고 활용하시기 바랍니다.

참고 자료