22
RESTful with Drupal Easy and consistent data management presentation by Kalin Chernev

RESTful with Drupal - in-s and out-s

Embed Size (px)

Citation preview

RESTful with DrupalEasy and consistent data management

presentation by Kalin Chernev

Agenda

● What is REST?● 3 reasons to build and use RESTful APIs● Data management paradigm reminded● Data managed by Drupal● Data managed by a friend of Drupal● Considerations● Modules and tools● Resources

About

● Drupalist from 2007● Trainer● Web developer

What is REST

Architectural style describes six constraints- Uniform Interface- Stateless- Cacheable- Client-Server- Layered System- Code on Demand (optional)

Simple and consistent way to manage data

Any device

Any technology

Any technology stack which works via HTTP

Name your server language:Python, Ruby, Java, NodeJS, PHP, .NET ...

Exchanging json files

Request / Response

Terminology to get you started

● Resource URI● Endpoint● JSON● REST client● REST server

Remember?

Data management at all CMS systems, boils down to simple:

C R U D

CASE 1: Drupal is REST Server

● We POST/GET jsons to manage Drupal● Data is managed in Drupal

Playing with the CRUD methodsEndpoint Action Method

/api/node CREATE POST

/api/node VIEW ALL GET

/api/:node_id VIEW SINGLE GET

/api/:node_id UPDATE PUT

/api/:node_id DELETE DELETE

In reality, one can almost always go a long way only using GET & POST

CASE 2: Drupal is REST Client

● We POST/GET jsons to manage content outside Drupal

● Data is contained outside Drupal

Data is shown and managed in Drupal

Drops REST API ServerEndpoint Action Method

/drops CREATE POST

/drops VIEW ALL GET

/drops/:drop_id VIEW SINGLE GET

/drops/:drop_id UPDATE PUT

/drops/:drop_id DELETE DELETE

Drupal magic

● hook_menu● hook_theme● helpers and callbacks

What do you get

● Consistency and standardization● Separate responsibilities of development● Easy work● Core in D8● Cacheable● Predictable development (to most part)

Considerations

● API server uptime and performance● Large amounts of data transfer● Security● Data validation● Error handling● Apache configurations to hide server

address