Mirmeca is a framework written in Swift that makes it easy for you to build apps on top of the WordPress API.
- Out of the box models for WordPress types (
Post,FeaturedImage,Term,Comment,Author, etc...). - Built in gateways to retrieve collections of types or single items from your WordPress backend (
PostsGateway,CommentGateway, etc...). - Start displaying content in under 5 minutes and less than 5 lines of code.
#Getting started To get started you will need a WordPress installion running the WP API plugin.
Interaction with your WordPress backend is made through Gateways (PostsGateway, TermGateway...).
Gateways let you send requests for content to WordPress in just a few lines of code.
They output types (Post, Comment, Author...) or arrays or types.
###Declare your environnements in your AppDelegate
let envs = ["dev": "http://localhost:3000/wp-json", "staging": "http://staging.example.com"]
MirmecaEnv.sharedInstance.defineEnvs(envs, defaultEnv: "dev")###Send a request to get the latest posts in your ViewController
// Pass the "posts" endpoint & use the default env
PostsGateway(endpoint: "posts", env: nil).request({})###Print the posts by passing a closure to the request method
PostsGateway(endpoint: "posts", env: nil).request({ (value: AnyObject?, error: NSError?) -> Void in
// Make sure that something was returned
if (error != nil) {
println("Something went wrong")
} else {
// Cast the return value as an array of posts
let posts = value as! [Post]
for post in posts {
println(post.title!)
}
}
})#Use cases Here are three of the numerous things Mirmeca helps you accomplish.
###Types & Gateways
###Search for posts
- Endpoint:
posts?filter[s]= - Gateway:
PostsGateway - Code:
let query = "chocolate%20cake"
PostsGateway(endpoint: "posts?filter[s]=\(query)", env: nil).request({ (value: AnyObject?, error: NSError?) -> Void in
// Make sure that something was returned
if (error != nil) {
println("Something went wrong")
} else {
// Cast the return value as an array of posts
let posts = value as! [Post]
for post in posts {
println(post.title!)
}
}
})###List your site's categories
- Endpoint:
taxonomies/category/terms - Gateway:
TermsGateway - Code:
TermsGateway(endpoint: "taxonomies/category/terms", env: nil).request({ (value: AnyObject?, error: NSError?) -> Void in
// Make sure that something was returned
if (error != nil) {
println("Something went wrong")
} else {
// Cast the return value as an array of terms
let categories = value as! [Term]
for category in categories {
println(category.name!)
}
}
})###Retrieve comments for a post
- Endpoint:
posts/40627/comments - Gateway:
CommentsGateway - Code:
CommentsGateway(endpoint: "posts/40627/comments", env: nil).request({ (value: AnyObject?, error: NSError?) -> Void in
// Make sure that something was returned
if (error != nil) {
println("Something went wrong")
} else {
// Cast the return value as an array of comments
let comments = value as! [Comment]
for comment in comments {
println(comment.author!.name!)
}
}
})#Installation You can use CocoaPods to install Mirmeca.
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'Mirmeca', '~> 0.04'#Credits Icon: Ant by Gilad Fried from the Noun Project
