restful with drupal - in-s and out-s
TRANSCRIPT
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
What is REST
Architectural style describes six constraints- Uniform Interface- Stateless- Cacheable- Client-Server- Layered System- Code on Demand (optional)
Any technology
Any technology stack which works via HTTP
Name your server language:Python, Ruby, Java, NodeJS, PHP, .NET ...
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
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
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
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)
Tools
● Advanced REST Client● Rest Console● Postman
i.e. You need a REST Client for your browser
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)