Identifier Params
A custom ID param reader must implement two methods: read
and describe
:
class MyIdParamReader: IdParamReader<MyId> {
override fun describe(): IdParamMeta {
TODO("not implemented")
}
override fun read(input: IdParams): String {
TODO("not implemented")
}
}
This API contract is subject to change. Because ID parsing is a core part of the runtime, it may be necessary to add to or change the methods you must implement.
‘describe’
describe
returns a description of this ID type, including a description of each field in the identifier. This metadata
is used to generate the URL path and to generate documentation.
For simple identifiers, you should only return one field description. The actual return type is
IdParamMeta
, which is an interface containing one value: val idParams: List<IdParamMeta.Param>
. Param
is a data
class with a name
string and a scalarFormat
which describes the format of a valid value.
If there are multiple values in idParams
, a compound identifier will be created. The URL parameters will appear in
the same order as the values in the idParams
list.
describe
can throw a UAPITypeError
to signify that something went wrong while constructing the metadata.
‘read’
read
is used to actually read the parameters from the path. It is passed an instance of IdParams
, which is a map
of parameter names to values.