wiki:S3/S3Resource

Version 15 (modified by Dominic König, 8 years ago) ( diff )

--

S3Resource

Introduction

Resources are dynamic, document-alike representations of data objects on the Eden server. As such, they can represent both single instances as well as structured sets of data objects.

Note: in the database context, a single instance of a data object is typically called a record (or row), with fields (or columns) as its atomic elements. However, even though S3Resources are typically bound to a relational database and therefore the record/field terminology is often used in this regard, they are not intended to provide any object-relational mapping (ORM).

S3Resources implement an extensible, multi-format RESTful API to retrieve and manipulate data on the Eden server by HTTP requests, where every resource can be addressed by an individual URL.

In the context of the Model-View-Controller (MVC) architecture, S3Resources are controller-generated objects. Typically, the controller generates a resource in response to an incoming HTTP request and returns a view of it (output) to the client:

Terminology

A S3Resource consists of elements which can be either resources themselves (container type) or data (atomic types).

Container type elements within a resource can be:

  • primary resources (independent data objects)
  • component resources (objects which are part of a primary object)
  • referenced resources (objects which are referenced by primary or component resources)

RESTful API

Flow Diagram

Description

The s3_rest_controller function is a helper function which easily apply the RESTful API over your controller. Every time user request for a resource the s3_rest_controller function is called and return an output which then is passed to the view. The above diagram explains how a s3_rest_controller responds to request and gives the generate the desired output.

  • So first s3_rest_controller function parse the request object to S3Request class to generate S3Request object (r) having following attributes S3Request
  • During this process S3Resource or r.resource is also generated
  • Then different method handlers are configured using set_handler function.
  • After that S3Request is executed, During execution first thing that occur is a check for any hook to prep function, prep is defined to get s3rest functionality, prep hook would allow you to change the handler configuration in certain situations.
  • Then method handler is determined , i.e the GET,POST,PUT,DELETE or other custom method
  • Then the handler are executed to get the desired output,If the no handlers are present , then the S3CRUD method is called which fills the output with create, update , list or delete form.
  • And then a check for any hook to postprocessor occurs.
  • Then some action buttons are added and the output is send to the view.

In case of interactive views output would be a dictionary with components that are then passed to the view, this could also contain a form.


DeveloperGuidelines

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.