
Annotation Type Operation
-
@Retention(RUNTIME) @Target(METHOD) public @interface Operation
RESTful method annotation used for a method which provides FHIR "operations".
-
-
Field Summary
Fields Modifier and Type Fields Description static String
NAME_MATCH_ALL
This constant is a special return value forname()
.
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description BundleTypeEnum
bundleType
If this operation returns a bundle, this parameter can be used to specify the bundle type to set in the bundle.boolean
global
If this is set totrue
, this method will be a global operation meaning that it applies to all resource typesboolean
idempotent
If a given operation method is idempotent (meaning roughly that it does not modify any data or state on the server) then this flag should be set totrue
(default isfalse
).boolean
manualRequest
If this is set totrue
(default isfalse
and this is almost always the right choice), the framework will not attempt to parse the request body, but will instead delegate it to the@Operation
method.boolean
manualResponse
If this is set totrue
(default isfalse
and this is almost always the right choice), the framework will not attempt to generate a response to this method.OperationParam[]
returnParameters
This parameter may be used to specify the parts which will be found in the response to this operation.Class<? extends IBaseResource>
type
This value may be populated with the resource type that the operation applies to.String
typeName
This value may be populated with the resource type that the operation applies to.
-
-
-
Field Detail
-
NAME_MATCH_ALL
static final String NAME_MATCH_ALL
This constant is a special return value forname()
. If this name is used, the given operation method will match all operation calls. This is generally not desirable, but can be useful if you have a server that should dynamically match any FHIR operations that are requested.
-
-
-
type
Class<? extends IBaseResource> type
This value may be populated with the resource type that the operation applies to. If set toIBaseResource
(which is the default) than the operation applies to the server and not to a specific resource type.This attribute should not be used a resource provider implementing
IResourceProvider
since the type can be inferred from the resource provider type.- Default:
- org.hl7.fhir.instance.model.api.IBaseResource.class
-
-
-
typeName
String typeName
This value may be populated with the resource type that the operation applies to. If set toIBaseResource
(which is the default) than the operation applies to the server and not to a specific resource type.This attribute should not be used a resource provider implementing
IResourceProvider
since the type can be inferred from the resource provider type.- Default:
- ""
-
-
-
idempotent
boolean idempotent
If a given operation method is idempotent (meaning roughly that it does not modify any data or state on the server) then this flag should be set totrue
(default isfalse
).One the server, setting this to
true
means that the server will allow the operation to be invoked using anHTTP GET
(on top of the standardHTTP POST
)- Default:
- false
-
-
-
returnParameters
OperationParam[] returnParameters
This parameter may be used to specify the parts which will be found in the response to this operation.- Default:
- {}
-
-
-
bundleType
BundleTypeEnum bundleType
If this operation returns a bundle, this parameter can be used to specify the bundle type to set in the bundle.- Default:
- ca.uhn.fhir.model.valueset.BundleTypeEnum.COLLECTION
-
-
-
manualResponse
boolean manualResponse
If this is set totrue
(default isfalse
and this is almost always the right choice), the framework will not attempt to generate a response to this method.This is useful if you want to include an
javax.servlet.http.HttpServletResponse
in your method parameters and create a response yourself directly from your@Operation
method.Note that this will mean that interceptor methods will not get fired for the response, so there are security implications to using this flag.
- Default:
- false
-
-
-
manualRequest
boolean manualRequest
If this is set totrue
(default isfalse
and this is almost always the right choice), the framework will not attempt to parse the request body, but will instead delegate it to the@Operation
method.This is useful if you want to include an
javax.servlet.http.HttpServletRequest
in your method parameters and parse the request yourself.- Default:
- false
-
-
-
global
boolean global
If this is set totrue
, this method will be a global operation meaning that it applies to all resource types- Default:
- false
-
-