/AWS1/IF_APY=>CREATERESOLVER()¶
About CreateResolver¶
Creates a Resolver object.
A resolver converts incoming requests into a format that a data source can understand, and converts the data source's responses into GraphQL.
Method Signature¶
METHODS /AWS1/IF_APY~CREATERESOLVER
IMPORTING
!IV_APIID TYPE /AWS1/APYSTRING OPTIONAL
!IV_TYPENAME TYPE /AWS1/APYRESOURCENAME OPTIONAL
!IV_FIELDNAME TYPE /AWS1/APYRESOURCENAME OPTIONAL
!IV_DATASOURCENAME TYPE /AWS1/APYRESOURCENAME OPTIONAL
!IV_REQUESTMAPPINGTEMPLATE TYPE /AWS1/APYMAPPINGTEMPLATE OPTIONAL
!IV_RESPONSEMAPPINGTEMPLATE TYPE /AWS1/APYMAPPINGTEMPLATE OPTIONAL
!IV_KIND TYPE /AWS1/APYRESOLVERKIND OPTIONAL
!IO_PIPELINECONFIG TYPE REF TO /AWS1/CL_APYPIPELINECONFIG OPTIONAL
!IO_SYNCCONFIG TYPE REF TO /AWS1/CL_APYSYNCCONFIG OPTIONAL
!IO_CACHINGCONFIG TYPE REF TO /AWS1/CL_APYCACHINGCONFIG OPTIONAL
!IV_MAXBATCHSIZE TYPE /AWS1/APYMAXBATCHSIZE OPTIONAL
!IO_RUNTIME TYPE REF TO /AWS1/CL_APYAPPSYNCRUNTIME OPTIONAL
!IV_CODE TYPE /AWS1/APYCODE OPTIONAL
!IV_METRICSCONFIG TYPE /AWS1/APYRESOLVERLEVELMETCFG OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_apycreateresolverrsp
RAISING
/AWS1/CX_APYBADREQUESTEX
/AWS1/CX_APYCONCURRENTMODEX
/AWS1/CX_APYINTERNALFAILUREEX
/AWS1/CX_APYNOTFOUNDEXCEPTION
/AWS1/CX_APYUNAUTHORIZEDEX
/AWS1/CX_APYCLIENTEXC
/AWS1/CX_APYSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
iv_apiid TYPE /AWS1/APYSTRING /AWS1/APYSTRING¶
The ID for the GraphQL API for which the resolver is being created.
iv_typename TYPE /AWS1/APYRESOURCENAME /AWS1/APYRESOURCENAME¶
The name of the
Type.
iv_fieldname TYPE /AWS1/APYRESOURCENAME /AWS1/APYRESOURCENAME¶
The name of the field to attach the resolver to.
Optional arguments:¶
iv_datasourcename TYPE /AWS1/APYRESOURCENAME /AWS1/APYRESOURCENAME¶
The name of the data source for which the resolver is being created.
iv_requestmappingtemplate TYPE /AWS1/APYMAPPINGTEMPLATE /AWS1/APYMAPPINGTEMPLATE¶
The mapping template to use for requests.
A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL).
VTL request mapping templates are optional when using an Lambda data source. For all other data sources, VTL request and response mapping templates are required.
iv_responsemappingtemplate TYPE /AWS1/APYMAPPINGTEMPLATE /AWS1/APYMAPPINGTEMPLATE¶
The mapping template to use for responses from the data source.
iv_kind TYPE /AWS1/APYRESOLVERKIND /AWS1/APYRESOLVERKIND¶
The resolver type.
UNIT: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source.
PIPELINE: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of
Functionobjects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.
io_pipelineconfig TYPE REF TO /AWS1/CL_APYPIPELINECONFIG /AWS1/CL_APYPIPELINECONFIG¶
The
PipelineConfig.
io_syncconfig TYPE REF TO /AWS1/CL_APYSYNCCONFIG /AWS1/CL_APYSYNCCONFIG¶
The
SyncConfigfor a resolver attached to a versioned data source.
io_cachingconfig TYPE REF TO /AWS1/CL_APYCACHINGCONFIG /AWS1/CL_APYCACHINGCONFIG¶
The caching configuration for the resolver.
iv_maxbatchsize TYPE /AWS1/APYMAXBATCHSIZE /AWS1/APYMAXBATCHSIZE¶
The maximum batching size for a resolver.
io_runtime TYPE REF TO /AWS1/CL_APYAPPSYNCRUNTIME /AWS1/CL_APYAPPSYNCRUNTIME¶
runtime
iv_code TYPE /AWS1/APYCODE /AWS1/APYCODE¶
The
resolvercode that contains the request and response functions. When code is used, theruntimeis required. Theruntimevalue must beAPPSYNC_JS.
iv_metricsconfig TYPE /AWS1/APYRESOLVERLEVELMETCFG /AWS1/APYRESOLVERLEVELMETCFG¶
Enables or disables enhanced resolver metrics for specified resolvers. Note that
metricsConfigwon't be used unless theresolverLevelMetricsBehaviorvalue is set toPER_RESOLVER_METRICS. If theresolverLevelMetricsBehavioris set toFULL_REQUEST_RESOLVER_METRICSinstead,metricsConfigwill be ignored. However, you can still set its value.
metricsConfigcan beENABLEDorDISABLED.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_apycreateresolverrsp /AWS1/CL_APYCREATERESOLVERRSP¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->createresolver(
io_cachingconfig = new /aws1/cl_apycachingconfig(
it_cachingkeys = VALUE /aws1/cl_apycachingkeys_w=>tt_cachingkeys(
( new /aws1/cl_apycachingkeys_w( |string| ) )
)
iv_ttl = 123
)
io_pipelineconfig = new /aws1/cl_apypipelineconfig(
it_functions = VALUE /aws1/cl_apyfunctionsids_w=>tt_functionsids(
( new /aws1/cl_apyfunctionsids_w( |string| ) )
)
)
io_runtime = new /aws1/cl_apyappsyncruntime(
iv_name = |string|
iv_runtimeversion = |string|
)
io_syncconfig = new /aws1/cl_apysyncconfig(
io_lambdaconflicthandlercfg = new /aws1/cl_apylambdaconflictha00( |string| )
iv_conflictdetection = |string|
iv_conflicthandler = |string|
)
iv_apiid = |string|
iv_code = |string|
iv_datasourcename = |string|
iv_fieldname = |string|
iv_kind = |string|
iv_maxbatchsize = 123
iv_metricsconfig = |string|
iv_requestmappingtemplate = |string|
iv_responsemappingtemplate = |string|
iv_typename = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lo_resolver = lo_result->get_resolver( ).
IF lo_resolver IS NOT INITIAL.
lv_resourcename = lo_resolver->get_typename( ).
lv_resourcename = lo_resolver->get_fieldname( ).
lv_resourcename = lo_resolver->get_datasourcename( ).
lv_string = lo_resolver->get_resolverarn( ).
lv_mappingtemplate = lo_resolver->get_requestmappingtemplate( ).
lv_mappingtemplate = lo_resolver->get_responsemappingtemplate( ).
lv_resolverkind = lo_resolver->get_kind( ).
lo_pipelineconfig = lo_resolver->get_pipelineconfig( ).
IF lo_pipelineconfig IS NOT INITIAL.
LOOP AT lo_pipelineconfig->get_functions( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_string = lo_row_1->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lo_syncconfig = lo_resolver->get_syncconfig( ).
IF lo_syncconfig IS NOT INITIAL.
lv_conflicthandlertype = lo_syncconfig->get_conflicthandler( ).
lv_conflictdetectiontype = lo_syncconfig->get_conflictdetection( ).
lo_lambdaconflicthandlerco = lo_syncconfig->get_lambdaconflicthandlercfg( ).
IF lo_lambdaconflicthandlerco IS NOT INITIAL.
lv_string = lo_lambdaconflicthandlerco->get_lambdaconflicthandlerarn( ).
ENDIF.
ENDIF.
lo_cachingconfig = lo_resolver->get_cachingconfig( ).
IF lo_cachingconfig IS NOT INITIAL.
lv_long = lo_cachingconfig->get_ttl( ).
LOOP AT lo_cachingconfig->get_cachingkeys( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_string = lo_row_3->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_maxbatchsize = lo_resolver->get_maxbatchsize( ).
lo_appsyncruntime = lo_resolver->get_runtime( ).
IF lo_appsyncruntime IS NOT INITIAL.
lv_runtimename = lo_appsyncruntime->get_name( ).
lv_string = lo_appsyncruntime->get_runtimeversion( ).
ENDIF.
lv_code = lo_resolver->get_code( ).
lv_resolverlevelmetricscon = lo_resolver->get_metricsconfig( ).
ENDIF.
ENDIF.