+ All Categories
Home > Technology > JSON REST API for WordPress

JSON REST API for WordPress

Date post: 06-Dec-2014
Category:
Upload: taylor-lovett
View: 2,611 times
Download: 2 times
Share this document with a friend
Description:
The JSON REST API for WordPress is sweeping the web. Soon it will be powering ~23% of the web.
Popular Tags:
24
JSON REST API for WordPress @tlovett12 + JSON REST API =
Transcript
Page 1: JSON REST API for WordPress

JSON REST API for WordPress

@tlovett12

+ JSON REST API

=

Page 2: JSON REST API for WordPress

Who Am I?

• My name is Taylor Lovett!

• Director of Web Engineering at 10up

• Open source community member

• WordPress core contributor

• WP API team member

@tlovett12

Page 3: JSON REST API for WordPress

We are hiring!@tlovett12

Page 4: JSON REST API for WordPress

So what’s this new WordPress API thing all about? Don’t we already have

one?

Page 5: JSON REST API for WordPress

Right now, we have XML-RPC.

Remote Procedural Call API’s are part of an old standard. They are very difficult to use.

Page 6: JSON REST API for WordPress

Why JSON REST API?

• In a nutshell, JSON REST API’s have swept the web becoming an almost standard. They are extremely intuitive and provide an easy way to distribute, collect, and modify data.

Let’s break it down a bit.

Page 7: JSON REST API for WordPress

JSON

• JSON is an abbreviation for “JavaScript Object Notation”

• It’s simply a way to describe data that is lightweight and extremely easy to use. Arguably much easier to use than XML.

Page 8: JSON REST API for WordPress

REST• REST (Representational State Transfer) is an architectural style

that dictates how HTTP and URI’s should be used and organized.

• Verbs and resources: GET /post/1

• Hypermedia as the Engine of Application State (HATEOAS) - Server provides everything you need to know how to use it in a response.

• Actions are autonomous and do not depend on each other.

• Bottom line: RESTful API’s have become extremely popular across the web. They are much easier to use than things like RPC or SOAP.

Page 9: JSON REST API for WordPress

And of course, API

• An API (Application Programming Interface) is a set of entry points that allow you to interact with a platform (WordPress in this case).

Page 10: JSON REST API for WordPress

How can I start using it now?

Page 11: JSON REST API for WordPress

First, install the plugin

http://wordpress.org/plugins/json-rest-api/ !

Core integration coming soon.

Page 12: JSON REST API for WordPress

What does the API let me to do?

/wp-json/ Shows all the routes and endpoints available

/wp-json/posts Create, read, update, and delete posts

/wp-json/users Create, read, update, and delete users

/wp-json/media Create, read, update, and delete media items

/wp-json/taxonomies Read taxonomies and terms

/wp-json/pages/ Create, read, update, and delete pages

Page 13: JSON REST API for WordPress

The API is rich with functionality. Explore the documentation!

http://wp-api.org

Page 14: JSON REST API for WordPress

The basic building block of WordPress is the post.http://codex.wordpress.org/Writing_Posts

Page 15: JSON REST API for WordPress

List Posts

[{! "ID": 11297,! "title": "Post 19",! "status": "publish",! "type": "post",! "author": 1,! "content": "",! "parent": null,! "link": "http:\/\/example.com\/2014\/08\/post-19\/",! "format": "standard",! "slug": "post-19",! "guid": "http:\/\/example.com\/2014\/08\/post-19\/",! "excerpt": null,! "menu_order": 0,! "comment_status": "closed",! "ping_status": "open",! "sticky": false,! "meta": {},! "featured_image": null,! "terms": {}!}]

GET /wp-json/posts

Page 16: JSON REST API for WordPress

List PostsGET /wp-json/posts

Takes a number of useful parameters:

• Filter[]: Accepts WP_Query arguments http://codex.wordpress.org/Class_Reference/WP_Query

• Page: Allows for pagination

• Context: Determines usage context i.e. “view or edit”

• …

https://github.com/WP-API/WP-API/blob/master/docs/routes/routes.md

Page 17: JSON REST API for WordPress

Retrieve A Post

{! "ID": 11297,! "title": "Post 19",! "status": "publish",! "type": "post",! "author": 1,! "content": "",! "parent": null,! "link": "http:\/\/example.com\/2014\/08\/post-19\/",! "format": "standard",! "slug": "post-19",! "guid": "http:\/\/example.com\/2014\/08\/post-19\/",! "excerpt": null,! "menu_order": 0,! "comment_status": "closed",! "ping_status": "open",! "sticky": false,! "meta": {},! "featured_image": null,! "terms": {}!}

GET /wp-json/posts/<id>

Page 18: JSON REST API for WordPress

Edit A PostPUT /wp-json/posts/<id>

curl -X PUT -H “Content-Type: application/json” -d ‘!{! "title": “Updated Title",! “content_raw": “Updated post content"!}!‘ -u admin:password http://example.com/wp-json/posts/<id>

We need to send a PUT request to this endpoint with our post data. Of course we must authenticate before

doing this.

Page 19: JSON REST API for WordPress

Create A PostPOST /wp-json/posts/

curl -X POST -H “Content-Type: application/json” -d ‘!{! "title": “Title",! “content_raw": “Post content"!}!‘ -u admin:password http://example.com/wp-json/posts/

Notice we are using a POST request this time.

Page 20: JSON REST API for WordPress

Build Your Own Routes and Endpoints

WP API is very extensible

http://wp-api.org/guides/extending.html

Page 21: JSON REST API for WordPress

What can I do with the JSON REST API for WordPress?

Page 22: JSON REST API for WordPress

ANYTHING!!!!

Page 23: JSON REST API for WordPress

If you learned nothing so far, know this:

You can do amazing things with the JSON REST API for WordPress.

Soon ~23% of the web will be using this API.

Page 24: JSON REST API for WordPress

Questions?

We need to send a PUT request to this endpoint with our post data. Of course we must authenticate before

doing this.

@tlovett12!

[email protected]!

taylorlovett.com


Recommended