Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package coursera
    Definition Classes
    org
  • package naptime
    Definition Classes
    coursera
  • 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 engine
    Definition Classes
    ari
  • package fetcher
    Definition Classes
    ari
  • FetcherApi
  • FetcherError
  • FullSchema
  • LocalSchemaProvider
  • Request
  • Response
  • SchemaProvider

case class Request(requestHeader: RequestHeader, resource: ResourceName, arguments: Set[(String, JsValue)], authOverride: Option[AuthOverride]) extends Product with Serializable

This encapsulates all of the information needed to compute a response.

requestHeader

The request header is used for authentication parsing in the underlying requests made. Path and query parameters included in the request header are ignored in favor of the data within the topLevelRequests fields.

resource

The name and version of the resource that this request is hitting

arguments

A list of query parameters to be used on the request. These are used to differentiate between various endpoints (i.e. multiget, finder, etc.).

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Request
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Request(requestHeader: RequestHeader, resource: ResourceName, arguments: Set[(String, JsValue)], authOverride: Option[AuthOverride])

    requestHeader

    The request header is used for authentication parsing in the underlying requests made. Path and query parameters included in the request header are ignored in favor of the data within the topLevelRequests fields.

    resource

    The name and version of the resource that this request is hitting

    arguments

    A list of query parameters to be used on the request. These are used to differentiate between various endpoints (i.e. multiget, finder, etc.).

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val arguments: Set[(String, JsValue)]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. val authOverride: Option[AuthOverride]
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. val requestHeader: RequestHeader
  16. val resource: ResourceName
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped