absinthe v0.2.2 Absinthe.Type.Scalar
Represents a primitive value.
GraphQL responses take the form of a hierarchical tree; the leaves on these trees are scalars.
Also see Absinthe.Type.Object
.
Built-In Scalars
The following built-in scalar types are defined:
:boolean
- Representstrue
orfalse
. See the GraphQL Specification.:float
- Represents signed double‐precision fractional values as specified by IEEE 754. See the GraphQL Specification.:id
- Represents a unique identifier, often used to refetch an object or as key for a cache. The ID type is serialized in the same way as a String; however, it is not intended to be human‐readable. See the GraphQL Specification.:integer
- Represents a signed 32‐bit numeric non‐fractional value, greater than or equal to -2^31 and less than 2^31. Note that Absinthe uses the full word:integer
to identify this type, but itsname
(used by variables, for instance), is"Int"
. See the GraphQL Specification.:string
- Represents textual data, represented as UTF‐8 character sequences. The String type is most often used by GraphQL to represent free‐form human‐readable text. See the GraphQL Specification.
Examples
Supporting a time format in ISOz format, using Timex:
use Absinthe.Field.Definitions
# Also loaded by `use Absinthe.Field.Schema`
@absinthe :type
def time do
%Absinthe.Type.Scalar{
description: "Time (in ISOz format)",
parse: &Timex.DateFormat.parse(&1, "{ISOz}"),
serialize: &Timex.DateFormat.format!(&1, "{ISOz}")
}
end
Summary
Types
t :: %{name: binary, description: binary, serialize: (value_t -> any), parse: (any -> {:ok, value_t} | :error), reference: Absinthe.Type.Reference.t}
A defined scalar type.
Note new scalars should be defined using @absinthe :type
from Absinthe.Type.Definitions
.
:name
- The name of scalar. Should be a TitleCasedbinary
. Set automatically when using@absinthe :type
fromAbsinthe.Type.Definitions
.:description
- A nice description for introspection.:serialize
- A function used to convert a value to a form suitable for JSON serialization:parse
- A function used to convert the raw, incoming form of a scalar to the canonical internal format.The
:reference
key is for internal use.
value_t :: any
The internal, canonical representation of a scalar value