Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RESTful services with Drupal - in and out

RESTful services with Drupal - in and out

Quick introduction on managing RESTful services with Drupal.
1) Drupal is the RESTful server
2) Drupal is the RESTful client managing data in MEAN stack

Code for the demo is at https://github.com/kalinchernev/Drupal-7/tree/master/restful_lecture

Avatar for Kalin Chernev

Kalin Chernev

November 26, 2014

Other Decks in Programming

Transcript

  1. 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
  2. What is REST Architectural style describes six constraints - Uniform

    Interface - Stateless - Cacheable - Client-Server - Layered System - Code on Demand (optional)
  3. Any technology Any technology stack which works via HTTP Name

    your server language: Python, Ruby, Java, NodeJS, PHP, .NET ...
  4. Terminology to get you started • Resource URI • Endpoint

    • JSON • REST client • REST server
  5. CASE 1: Drupal is REST Server • We POST/GET jsons

    to manage Drupal • Data is managed in Drupal
  6. Playing with the CRUD methods Endpoint 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
  7. 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
  8. Drops REST API Server Endpoint 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
  9. What do you get • Consistency and standardization • Separate

    responsibilities of development • Easy work • Core in D8 • Cacheable • Predictable development (to most part)
  10. Considerations • API server uptime and performance • Large amounts

    of data transfer • Security • Data validation • Error handling • Apache configurations to hide server address
  11. Drupal contrib modules • Services (totally rewritten for D7, good

    API) • Services Entity API (of course!) • RESTClient (from my experience) • cURL HTTP Request (helper to restclient) • Self Documenting REST API (D8) • REST UI (D8)
  12. Tools • Advanced REST Client • Rest Console • Postman

    i.e. You need a REST Client for your browser
  13. Resources • www.restapitutorial.com • REST in Drupal 8 core •

    Build a RESTful API Using Node and Express 4 by scotch.io • The code of the presentation (managing drops in MEAN from Drupal back-end)