This library is largely a translation of Scryfall’s REST API to a collection of Swift enums and structs. It is highly recommended that you read the official Scryfall API docs as the documentation in this project will not attempt to give in-depth explanations of how each of these endpoints work.
For the most up to date documentation, use the DocC pages published here
swift package --disable-sandbox preview-documentation --target MyFramework
Getting Started
Add ScryfallKit to your project either through the Xcode UI, or through the process below for Swift Packages
let package = Package(
// ... Other Package.swift stuff goes here
dependencies: [
.package(url: "https://github.com/JacobHearst/ScryfallKit", from: "5.0.0"), // Add the library to your manifest
],
targets: [
.target(name: "MyPackage", dependencies: ["ScryfallKit"]), // Add it to your target's dependencies
]
)
Example
import ScryfallKit
let client = ScryfallClient()
// Retrieve the Strixhaven Mystical Archive printing of Doom Blade
client.getCardByName(exact: "Doom Blade", set: "STA") { result in
switch result {
case .success(let doomBlade):
print(doomBlade.cmc)
case .failure(let error):
print("Received error: \(error)")
}
}
// Or using async
do {
let doomBlade = try await client.getCardByName(exact: "Doom Blade", set: "STA")
print(doomBlade.cmc)
} catch {
print("Received error: \(error)")
}
Network Logging
The ScryfallClient has a configurable level of network logging with two options: minimal and verbose. Enabling verbose logging will print the HTTP body of each request and response. Minimal logging will log that a request was made (and the URL it’s made to) as well as that a response was received.
Contributing
Contributions are always welcome, simply fork this repo, make and test your changes, and then open a pull request. I will try and review it within a reasonable amount of time.
ScryfallKit
A Swift Package for accessing Scryfall’s REST API
Documentation
This library is largely a translation of Scryfall’s REST API to a collection of Swift enums and structs. It is highly recommended that you read the official Scryfall API docs as the documentation in this project will not attempt to give in-depth explanations of how each of these endpoints work.
For the most up to date documentation, use the DocC pages published here
To generate these pages locally, use this command from Apple’s Swift DocC plugin
swift package --disable-sandbox preview-documentation --target MyFramework
Getting Started
Add ScryfallKit to your project either through the Xcode UI, or through the process below for Swift Packages
Example
Network Logging
The ScryfallClient has a configurable level of network logging with two options: minimal and verbose. Enabling verbose logging will print the HTTP body of each request and response. Minimal logging will log that a request was made (and the URL it’s made to) as well as that a response was received.
Contributing
Contributions are always welcome, simply fork this repo, make and test your changes, and then open a pull request. I will try and review it within a reasonable amount of time.