Class IpfFhirServlet
java.lang.Object
jakarta.servlet.GenericServlet
jakarta.servlet.http.HttpServlet
ca.uhn.fhir.rest.server.RestfulServer
org.openehealth.ipf.commons.ihe.fhir.IpfFhirServlet
- All Implemented Interfaces:
IRestfulServer<ServletRequestDetails>,IRestfulServerDefaults,jakarta.servlet.Servlet,jakarta.servlet.ServletConfig,Serializable
- Direct Known Subclasses:
IpfBootFhirServlet
HAPI FHIR
RestfulServer implementation, adding a few configuration bits using servlet
init parameters:
- logging (boolean): add global logging interceptor
- highlight (boolean): add response formatting if request was issued from a browser
- pretty (boolean): pretty-print the response
- pagingProviderSize (integer): maximum number of concurrent paging requests
- strict (boolean): strict parsing, i.e. return error on invalid resources
- Since:
- 3.2
- Author:
- Christian Ohr
- See Also:
-
Field Summary
FieldsFields inherited from class ca.uhn.fhir.rest.server.RestfulServer
DEFAULT_ETAG_SUPPORT, DEFAULT_PREFER_RETURN, REQUEST_START_TIME, SERVLET_CONTEXT_ATTRIBUTEFields inherited from class jakarta.servlet.http.HttpServlet
LEGACY_DO_HEAD -
Constructor Summary
ConstructorsConstructorDescriptionIpfFhirServlet(FhirContext fhirContext) Initializes the servlet with a pre-instantiated FHIR Context.IpfFhirServlet(FhirVersionEnum fhirVersion) Initialize the servlet with a FHIR version. -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()protected INarrativeGeneratorprotected IPagingProvidergetDefaultPagingProvider(int pagingProviderSize) Returns the instance ofIPagingProviderto be used.protected Objectintvoidinit(jakarta.servlet.ServletConfig config) RestfulServer assumes that all resource providers are known at init time, which is not the case here.protected voidCalled upon initialization of the servlet, which is too early to know about the existing FHIR consumers initialization of Camel routes and endpoints.booleanbooleanbooleanbooleanvoidsetDefaultPageSize(Integer defaultPageSize) voidsetFhirContext(FhirContext fhirContext) voidsetFhirVersion(FhirVersionEnum fhirVersion) voidsetLogging(boolean logging) voidsetMaximumPageSize(Integer maximumPageSize) voidsetNarrativeGenerator(INarrativeGenerator narrativeGenerator) voidsetPagingProviderSize(int pagingProviderSize) voidsetPrettyPrint(boolean prettyPrint) voidsetResponseHighlighting(boolean responseHighlighting) voidsetServletName(String servletName) voidsetStrictErrorHandler(boolean strictErrorHandler) Methods inherited from class ca.uhn.fhir.rest.server.RestfulServer
addHeadersToResponse, addRequestIdToResponse, createConfiguration, createPoweredByAttributes, createPoweredByHeader, createPoweredByHeaderComponentName, createPoweredByHeaderProductName, createPoweredByHeaderProductVersion, determineResourceMethod, doDelete, doGet, doOptions, doPost, doPut, escapedLength, getAddProfileTag, getBundleInclusionRule, getCapabilityStatement, getCopyright, getDefaultPreferReturn, getDefaultResponseEncoding, getElementsSupport, getETagSupport, getFhirContext, getImplementationDescription, getInterceptors_, getInterceptorService, getOrCreateRequestId, getPagingProvider, getPlainProviders, getProviderMethodBindings, getRequestPath, getResourceBindings, getResourceProviders, getServerAddressStrategy, getServerBaseForRequest, getServerBindings, getServerConformanceMethod, getServerConformanceProvider, getServerName, getServerVersion, handleRequest, init, isDefaultPrettyPrint, isIgnoreServerParsedRequestParameters, isUncompressIncomingContents, newRequestDetails, newRequestDetails, newRequestId, populateRequestDetailsFromRequestPath, registerInterceptor, registerProvider, registerProviders, registerProviders, registerProviders, returnResponse, service, setAddProfileTag, setBundleInclusionRule, setCopyright, setDefaultPreferReturn, setDefaultPrettyPrint, setDefaultResponseEncoding, setElementsSupport, setETagSupport, setIgnoreServerParsedRequestParameters, setImplementationDescription, setInterceptors, setInterceptors, setInterceptorService, setPagingProvider, setPlainProviders, setPlainProviders, setProviders, setResourceProviders, setResourceProviders, setServerAddressStrategy, setServerConformanceProvider, setServerName, setServerVersion, setTenantIdentificationStrategy, setUncompressIncomingContents, throwUnknownFhirOperationException, throwUnknownFhirOperationException, throwUnknownResourceTypeException, unregisterAllProviders, unregisterInterceptor, unregisterProvider, unregisterProviders, validateRequestMethods inherited from class jakarta.servlet.http.HttpServlet
doHead, doTrace, getLastModified, serviceMethods inherited from class jakarta.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, log, logMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ca.uhn.fhir.rest.api.server.IRestfulServer
canStoreSearchResults
-
Field Details
-
DEFAULT_SERVLET_NAME
- See Also:
-
-
Constructor Details
-
IpfFhirServlet
public IpfFhirServlet() -
IpfFhirServlet
Initialize the servlet with a FHIR version. During initialization, a new FHIR Context is created and initialized withstrictErrorHandlerandnarrativeGenerator.- Parameters:
fhirVersion- FHIR version
-
IpfFhirServlet
Initializes the servlet with a pre-instantiated FHIR Context. No further changes are done to this FHIRContext instance.- Parameters:
fhirContext- FHIR Context
-
-
Method Details
-
init
public void init(jakarta.servlet.ServletConfig config) throws jakarta.servlet.ServletException RestfulServer assumes that all resource providers are known at init time, which is not the case here.- Specified by:
initin interfacejakarta.servlet.Servlet- Overrides:
initin classjakarta.servlet.http.HttpServlet- Parameters:
config- servlet config- Throws:
jakarta.servlet.ServletException- servlet exception
-
destroy
public void destroy()- Specified by:
destroyin interfacejakarta.servlet.Servlet- Overrides:
destroyin classRestfulServer
-
getDefaultPagingProvider
Returns the instance ofIPagingProviderto be used. This implementation returnsFifoMemoryPagingProvider, you may overwrite this e.g. to add a provider backed by a decent Cache implementation. In this case, not forget to set the paging parameters accessible viagetPagingProviderSize(),getDefaultPageSize()andgetMaximumPageSize().You can also return null in order to disable paging.
The way how paging is actually implemented depends on the respective FHIR consumer endpoints
- Parameters:
pagingProviderSize- maximum number of parallel paged requests. Note that each request may have an arbitrary number of result resources though.- Returns:
- implementation of
IPagingProvider - See Also:
-
getDefaultNarrativeGenerator
- Returns:
- the narrative generator, null by default
-
getLoggingInterceptor
- Returns:
- the logging interceptor if
loggingis true
-
setFhirContext
- Overrides:
setFhirContextin classRestfulServer
-
initialize
protected void initialize()Called upon initialization of the servlet, which is too early to know about the existing FHIR consumers initialization of Camel routes and endpoints.- Overrides:
initializein classRestfulServer
-
getServletName
- Specified by:
getServletNamein interfacejakarta.servlet.ServletConfig- Overrides:
getServletNamein classjakarta.servlet.GenericServlet
-
setServletName
-
isLogging
public boolean isLogging() -
setLogging
public void setLogging(boolean logging) -
getFhirVersion
-
setFhirVersion
-
isResponseHighlighting
public boolean isResponseHighlighting() -
setResponseHighlighting
public void setResponseHighlighting(boolean responseHighlighting) -
isPrettyPrint
public boolean isPrettyPrint() -
setPrettyPrint
public void setPrettyPrint(boolean prettyPrint) -
getPagingProviderSize
public int getPagingProviderSize() -
setPagingProviderSize
public void setPagingProviderSize(int pagingProviderSize) -
getDefaultPageSize
- Specified by:
getDefaultPageSizein interfaceIRestfulServerDefaults- Overrides:
getDefaultPageSizein classRestfulServer
-
setDefaultPageSize
- Overrides:
setDefaultPageSizein classRestfulServer
-
getMaximumPageSize
- Specified by:
getMaximumPageSizein interfaceIRestfulServerDefaults- Overrides:
getMaximumPageSizein classRestfulServer
-
setMaximumPageSize
- Overrides:
setMaximumPageSizein classRestfulServer
-
isStrictErrorHandler
public boolean isStrictErrorHandler() -
setStrictErrorHandler
public void setStrictErrorHandler(boolean strictErrorHandler) -
getNarrativeGenerator
-
setNarrativeGenerator
-