Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package coursera
    Definition Classes
    org
  • package naptime
    Definition Classes
    coursera
  • package access
    Definition Classes
    naptime
  • package actions
    Definition Classes
    naptime
  • package ari

    This ari defines the key abstractions for automatic resource inclusion as well as GraphQL.

    This ari defines the key abstractions for automatic resource inclusion as well as GraphQL.

    The system is split up into 3 distinct layers:

    +---------------------------------------------------------------------+
    |                       Presentation Layer                            |
    |           GraphQL            |            Naptime HTTP              |
    +------------------------------+--------------------------------------+
    |                                                                     |
    |                      Inclusion Engine                               |
    |                                                                     |
    +---------------------------------------------------------------------+
    |                        Data fetching                                |
    |         Local execution      |           remote execution           |
    +=====================================================================+
    |                                                                     |
    |                   Unmodified Naptime APIs                           |
    |                                                                     |
    +---------------------------------------------------------------------+

    A request enters the system via the presentation layer (typically parsed from the network). The presentation layer constructs a org.coursera.naptime.ari.Request and passes that to engine. The engine performs a number of validations against the schema, and then makes a number of requests to to the Data Fetching layer to assemble all of the (available) data required to construct a response. This is passed back to the presentation layer, which constructs a response to be sent out on the wire.

    The API between the presentation layer and the inclusion engine is the org.coursera.naptime.ari.EngineApi

    The API between the inclusion engine and the data fetching layer is defined by org.coursera.naptime.ari.FetcherApi.

    BEWARE: This code is currently in a high state of flux. Do not depend upon it unless you are prepared for breakages!

    Definition Classes
    naptime
  • package exceptions
    Definition Classes
    naptime
  • package path
    Definition Classes
    naptime
  • package resources
    Definition Classes
    naptime
  • CollectionResource
  • CourierCollectionResource
  • NestedCourierCollectionResource
  • Resource
  • RootResource
  • TopLevelCollectionResource
  • package router2
    Definition Classes
    naptime
  • package schema
    Definition Classes
    naptime

package resources

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. trait CollectionResource[ParentResource <: Resource[_], K, M] extends Resource[M]

    Defines methods that collection resources can implement

  2. abstract class CourierCollectionResource[K, M <: ScalaRecordTemplate] extends NestedCourierCollectionResource[RootResource, K, M]

    If the resource is a courier model, extending from CourierCollectionResource removes some boilerplate.

    If the resource is a courier model, extending from CourierCollectionResource removes some boilerplate.

    If you have a nested resource, check out NestedCourierCollectionResource.

    K

    The key type of the resource.

    M

    The "value" type of the resource.

  3. abstract class NestedCourierCollectionResource[ParentResource <: Resource[_], K, M <: ScalaRecordTemplate] extends CollectionResource[ParentResource, K, M]

    If the resource is a courier model, extending from NestedCourierCollectionResource removes some boilerplate.

    If the resource is a courier model, extending from NestedCourierCollectionResource removes some boilerplate.

    Aside from automating some of the boilerplate away, it functions the same as a standard CollectionResource. If the resource is a top level resource, check out the CourierCollectionResource abstract class.

    To configure customized fields, use the following snippet:

    override implicit lazy val Fields = super.FIelds.withRelated(...)
    ParentResource

    The parent resource (for nesting purposes). If it is a top level, check out: CourierCollectionResource

    K

    The key type of the resource.

    M

    The "value" type of the resource.

  4. trait Resource[M] extends AnyRef

    Base Resource trait: mostly a marker trait wrapper methods for model serialization

  5. sealed trait RootResource extends Resource[Unit]

    The root resource for nesting purposes.

  6. trait TopLevelCollectionResource[K, M] extends CollectionResource[RootResource, K, M]

    All collection resource that are not a sub-resource of any other resource should extend this.

    All collection resource that are not a sub-resource of any other resource should extend this.

    Nested resources should extend the standard CollectionResource trait, supplying the parent resource as the first type parameter.

Value Members

  1. object RootResource extends RootResource

Ungrouped