Skip to main content

Installation

Swift package manager

Add the package to your Package.swift dependencies:
dependencies: [
    .package(
        url: "https://github.com/ButterCMS/buttercms-swift.git",
        from: "1.0.0"
    )
]
Or in Xcode: File → Add Package Dependencies and enter the repository URL.

Initialization

Initialize the SDK with your Read API token from the ButterCMS Settings.
import ButterCMS

ButterCMSSDK.shared.apiKey = "your_api_token"

API methods

Pages

// Retrieve a single page
ButterCMSSDK.shared.getPage(
    pageType: "landing_page",
    pageSlug: "home-page",
    parameters: ["locale": "en"]
) { result in
    switch result {
    case .success(let page):
        print(page)
    case .failure(let error):
        print("Error: \(error)")
    }
}

// List all pages of a type
ButterCMSSDK.shared.getPages(
    pageType: "landing_page",
    parameters: ["page": "1", "page_size": "10"]
) { result in
    switch result {
    case .success(let pages):
        print(pages)
    case .failure(let error):
        print("Error: \(error)")
    }
}

Collections

// Retrieve collection content
ButterCMSSDK.shared.getContentFields(
    keys: ["faq", "navigation"],
    parameters: ["locale": "en"]
) { result in
    switch result {
    case .success(let content):
        print(content)
    case .failure(let error):
        print("Error: \(error)")
    }
}

Blog Posts

// List blog posts
ButterCMSSDK.shared.getPosts(
    parameters: ["page": "1", "page_size": "10"]
) { result in
    switch result {
    case .success(let posts):
        print(posts)
    case .failure(let error):
        print("Error: \(error)")
    }
}

// Retrieve a single post
ButterCMSSDK.shared.getPost(slug: "my-post-slug") { result in
    switch result {
    case .success(let post):
        print(post)
    case .failure(let error):
        print("Error: \(error)")
    }
}

Authors, categories, and tags

// List authors
ButterCMSSDK.shared.getAuthors(
    parameters: ["include": "recent_posts"]
) { result in /* handle result */ }

// List categories
ButterCMSSDK.shared.getCategories(
    parameters: ["include": "recent_posts"]
) { result in /* handle result */ }

// List tags
ButterCMSSDK.shared.getTags(
    parameters: ["include": "recent_posts"]
) { result in /* handle result */ }

Resources

GitHub Repository

View source code, report issues, and contribute