On Github eiriksm / cupidom-dcoslo2014
Ikke aktuelt pga restriksjoner på innhold.
Login request: +----------------+ +---------------+ +---------------+ | App / client | | App backend | | Drupal (API) | +-------+--------+ +-------+-------+ +-------+-------+ | | | | 1. Page request | | |+------------------------->| 2. No valid app session[1] | | | Send login request | | |+-------------------------->| | | | | | 3. Return Drupal session | | 4. Create app session |<--------------------------+| | Store Drupal session | | | Return resources | | | (html, js, img..) | | |<-------------------------+| | v v v
API request to Drupal: +----------------+ +---------------+ +---------------+ | App / client | | App backend | | Drupal (API) | +-------+--------+ +-------+-------+ +-------+-------+ | | | | 1. Drupal API request | | |+------------------------->| 2. Check app session | | | Proxy /api prefix | | |+-------------------------->| | | | | | 3. Return json result | |<------------------------------------------------------+| v v v
API request to App backend and SOLR: +----------------+ +---------------+ +---------------+ | App / client | | App backend | | Solr | +-------+--------+ +-------+-------+ +-------+-------+ | | | | 1. Search request | | |+------------------------->| 2. Check app session | | | Solr query | | |+-------------------------->| | | | | | 3. Return result | | |<--------------------------+| | 4. Return result | | |<-------------------------+| | v v v
API request on messages: +----------------+ +---------------+ +---------------+ | App / client | | App / redis | | Drupal | +-------+--------+ +-------+-------+ +-------+-------+ | | | | 1. Updates? | | |+------------------------->| 2. Check app session | | | Subscribe on key | | |+ - - - - - - - - - - - - ->| | | | | | 3. Return result | | 4. Return result |<- - - - - - - - - - - - - +| | or HTTP 204 No content | | |<-------------------------+| | v v v
Potensielt enklere å forholde seg til oppgraderinger (f.eks 6 - 7) ved å ha en “kontrakt” ift API for backend.