Package com.simplicite.webapp.services
Class RESTServiceExternalObject
- java.lang.Object
-
- com.simplicite.util.ExternalObject
-
- com.simplicite.webapp.services.RESTServiceExternalObject
-
- All Implemented Interfaces:
com.simplicite.util.engine.CacheInterface
,java.io.Serializable
- Direct Known Subclasses:
GraphQLExternalObject
,RESTMappedObjectsExternalObject
public abstract class RESTServiceExternalObject extends ExternalObject
REST service external object- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class com.simplicite.util.ExternalObject
DEFAUT_MIME_TYPE
-
-
Constructor Summary
Constructors Constructor Description RESTServiceExternalObject()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.json.JSONObject
badRequest(java.lang.String message)
Bad request errororg.json.JSONObject
badRequest(java.util.List<java.lang.String> messages)
Bad request error(s)ObjectDB
borrowAPIObject(java.lang.String name)
Borrow a pooled API object or provide a non pooled object (pooled objects are only available on the API endpoint)void
clearDataCache()
Clear all data from data cachejava.lang.Object
del(Parameters params)
DELETE method hook to implement (returns bad request by default)java.lang.Object
display(Parameters params)
Dispatch to GET/POST/PUT/DELETE/HEAD/PATCH methodsorg.json.JSONObject
error(int status, java.lang.String message)
Error response, format:{ "status": <code>, "error": "<message>" }
org.json.JSONObject
error(int status, java.util.List<java.lang.String> messages)
Error response, format:{ "status": <code>, "errors": [ "<message 1>", "<message 2>", ...
org.json.JSONObject
error(HTTPException e)
Error responseorg.json.JSONObject
error(java.lang.Throwable e)
Error responseorg.json.JSONObject
forbidden(java.lang.String message)
Forbidden errorjava.lang.Object
get(Parameters params)
GET method hook to implement (returns bad request by default)java.lang.Object
getFromDataCache(java.lang.String key)
Get data from data cachejava.util.List<java.lang.String>
getURIParts()
Get the URI parts after external object namejava.lang.Object
head(Parameters params)
HEAD method hook to implement (returns bad request by default)void
init(Parameters params)
Init method to override if neededorg.json.JSONObject
internalServerError(java.lang.String message)
Internal server errorboolean
isDebug()
Is debug mode enabled?org.json.JSONObject
openapi()
OpenAPI schemajava.lang.Object
patch(Parameters params)
PATCH method hook to implement (returns bad request by default)java.lang.Object
post(Parameters params)
POST method hook to implement (returns bad request by default)java.lang.Object
put(Parameters params)
PUT method hook to implement (returns bad request by default)void
removeFromDataCache(java.lang.String key)
Remove data from data cachevoid
returnAPIObject(ObjectDB obj)
Return pooled API object or does nothing (pooled objects are only available on the API endpoint)void
setDebug(boolean d)
Enable or disable debug modevoid
setUseCache(boolean c)
Enable or disable data caching for this external object
This has no effect if data caching is not also globally enabledvoid
storeInDataCache(java.lang.String key, java.lang.Object data)
Store data in data cacheorg.json.JSONObject
success(java.lang.Object payload)
Success response, format:{ "status": 200, "payload": "<payload>" }
org.json.JSONObject
unauthorized(java.lang.String message)
Unauthorized errorboolean
useDataCache()
Is data caching enabled globally and for this external object?boolean
useObjectPool()
Use object pool?-
Methods inherited from class com.simplicite.util.ExternalObject
addChartjs, addExtraCSS, addExtraCSS, addExtraHTML, addExtraHTML, addExtraJS, addExtraJS, addFullCalendar, addFullCalendar, addGmap, addJQPlot, addMarkdown, addMustache, addQRCodeScanner, addSharedScript, addSignaturePad, addSimpliciteClient, addVue, addVueRuntimeOnly, apendSimpliciteLib, appendChartjs, appendCSSInclude, appendCSSIncludes, appendFullCalendar, appendFullCalendar, appendGmap, appendHTML, appendJQPlot, appendJSInclude, appendJSIncludes, appendMarkdown, appendMustache, appendQRCodeScanner, appendSignaturePad, appendVue, appendVueRuntimeOnly, destroy, enableGC, evalExpression, garbageCollection, getBooleanParameter, getCacheKey, getClassName, getConsole, getContentDisposition, getCSSResources, getDesc, getDisplay, getDoubleParameter, getExternalObjectId, getExternalObjectName, getExtraCSS, getExtraHTML, getExtraJS, getFlagParameter, getFloatParameter, getGrant, getHelp, getHTML, getHTMLResources, getHTTPStatus, getIconCode, getId, getImageResources, getInstanceName, getIntParameter, getJSResources, getLabel, getLongParameter, getMaxAge, getMimeType, getMIMEType, getModuleId, getModuleName, getName, getObjectParameter, getObjectParameter, getParameter, getParameter, getResource, getResourceContent, getResourceCSSContent, getResourceCSSURL, getResourceFontContent, getResourceFontURL, getResourceHTMLContent, getResourceHTMLURL, getResourceJSContent, getResourceJSURL, getResourcePDFContent, getResourcePDFURL, getResources, getResourceURL, getRoot, getScriptId, getSharedScripts, getTarget, getURL, hasDecoration, hasJSGlobals, hasJSParameters, hasResources, hasTitle, httpRedirect, invokeAction, invokeAction, invokeAction, invokeAction, isEmbedded, isJavaImplemented, isPublic, javascript, lastUsage, prepareExpression, readScript, redirect, removeParameter, removeParameters, sendHttpError, sendHttpRedirect, sendJavaScript, sendRedirect, setClassName, setConsole, setContentDisposition, setCSVMIMEType, setDecoration, setDisplay, setGrant, setHelp, setHTML, setHTMLMIMEType, setHTTPStatus, setIconCode, setId, setInstanceName, setJavaImplemented, setJSGlobals, setJSONMIMEType, setJSParameters, setLabel, setMaxAge, setMimeType, setMIMEType, setModuleId, setModuleName, setMSExcelMIMEType, setMSPowerPointMIMEType, setMSWordMIMEType, setName, setParameter, setParameter, setParameter, setParameter, setParameter, setParameter, setPDFMIMEType, setPublic, setResources, setRoot, setScriptId, setTarget, setTextMIMEType, setTitle, setTSVMIMEType, setURL, setUseCalculator, setUseCalendar, setUseCharts, setUseCodeEditor, setUseCompletion, setUseHTMLEditor, setUseJQPlot, setUseSimpliciteClient, setUseTreeview, setXMLMIMEType, setYAMLMIMEType, setZIPMIMEType, toJSONObject, toString, unitTests, useCalculator, useCalendar, useChartjs, useCodeEditor, useCompletion, useHTMLEditor, useJQPlot, useSimpliciteClient, useTreeview
-
-
-
-
Method Detail
-
isDebug
public boolean isDebug()
Is debug mode enabled?- Returns:
- True if debug mode is enabled
-
setDebug
public void setDebug(boolean d)
Enable or disable debug mode- Parameters:
d
- Debug mode enabled?
-
setUseCache
public void setUseCache(boolean c)
Enable or disable data caching for this external object
This has no effect if data caching is not also globally enabled- Parameters:
c
- Data cache enabled?
-
useDataCache
public boolean useDataCache()
Is data caching enabled globally and for this external object?- Returns:
- True if data caching is enabled
-
success
public org.json.JSONObject success(java.lang.Object payload)
Success response, format:{ "status": 200, "payload": "<payload>" }
- Parameters:
payload
- Payload- Returns:
- JSON object with payload
-
error
public org.json.JSONObject error(int status, java.lang.String message)
Error response, format:{ "status": <code>, "error": "<message>" }
- Parameters:
status
- HTTP statusmessage
- Error message- Returns:
- JSON object
-
error
public org.json.JSONObject error(int status, java.util.List<java.lang.String> messages)
Error response, format:{ "status": <code>, "errors": [ "<message 1>", "<message 2>", ... ] }
- Parameters:
status
- HTTP statusmessages
- Error messages- Returns:
- JSON object
-
error
public org.json.JSONObject error(HTTPException e)
Error response- Parameters:
e
- HTTP exception- Returns:
- JSON object
-
error
public org.json.JSONObject error(java.lang.Throwable e)
Error response- Parameters:
e
- Throwable- Returns:
- JSON object
-
unauthorized
public org.json.JSONObject unauthorized(java.lang.String message)
Unauthorized error- Parameters:
message
- Message- Returns:
- JSON object
-
forbidden
public org.json.JSONObject forbidden(java.lang.String message)
Forbidden error- Parameters:
message
- Message- Returns:
- JSON object
-
badRequest
public org.json.JSONObject badRequest(java.lang.String message)
Bad request error- Parameters:
message
- Message- Returns:
- JSON object
-
badRequest
public org.json.JSONObject badRequest(java.util.List<java.lang.String> messages)
Bad request error(s)- Parameters:
messages
- Messages- Returns:
- JSON object
-
internalServerError
public org.json.JSONObject internalServerError(java.lang.String message)
Internal server error- Parameters:
message
- Message- Returns:
- JSON object
-
openapi
public org.json.JSONObject openapi()
OpenAPI schema- Returns:
- JSON object
-
get
public java.lang.Object get(Parameters params) throws HTTPException
GET method hook to implement (returns bad request by default)- Returns:
- Typically JSON object or array
- Throws:
HTTPException
-
post
public java.lang.Object post(Parameters params) throws HTTPException
POST method hook to implement (returns bad request by default)- Returns:
- Typically JSON object or array
- Throws:
HTTPException
-
put
public java.lang.Object put(Parameters params) throws HTTPException
PUT method hook to implement (returns bad request by default)- Returns:
- Typically JSON object or array
- Throws:
HTTPException
-
del
public java.lang.Object del(Parameters params) throws HTTPException
DELETE method hook to implement (returns bad request by default)- Returns:
- Typically JSON object or array
- Throws:
HTTPException
-
head
public java.lang.Object head(Parameters params) throws HTTPException
HEAD method hook to implement (returns bad request by default)- Returns:
- Typically JSON object or array
- Throws:
HTTPException
-
patch
public java.lang.Object patch(Parameters params) throws HTTPException
PATCH method hook to implement (returns bad request by default)- Returns:
- Typically JSON object or array
- Throws:
HTTPException
-
getURIParts
public final java.util.List<java.lang.String> getURIParts()
Get the URI parts after external object name- Returns:
- List of URI parts
-
useObjectPool
public boolean useObjectPool()
Use object pool?- Returns:
- True if object pool is used
-
borrowAPIObject
public ObjectDB borrowAPIObject(java.lang.String name)
Borrow a pooled API object or provide a non pooled object (pooled objects are only available on the API endpoint)- Parameters:
name
- Object name- Returns:
- Borrowed pooled object (needs to be returned) or a non pooled object if pooled objects are not available
-
returnAPIObject
public void returnAPIObject(ObjectDB obj)
Return pooled API object or does nothing (pooled objects are only available on the API endpoint)- Parameters:
obj
- Borrowed pooled object to return
-
storeInDataCache
public void storeInDataCache(java.lang.String key, java.lang.Object data)
Store data in data cache- Parameters:
key
- Keydata
- Data
-
getFromDataCache
public java.lang.Object getFromDataCache(java.lang.String key)
Get data from data cache- Parameters:
key
- Key- Returns:
- Data from cache or null if not present in the data cache
-
removeFromDataCache
public void removeFromDataCache(java.lang.String key)
Remove data from data cache- Parameters:
key
- Key
-
clearDataCache
public void clearDataCache()
Clear all data from data cache
-
init
public void init(Parameters params)
Init method to override if needed
-
display
public final java.lang.Object display(Parameters params)
Dispatch to GET/POST/PUT/DELETE/HEAD/PATCH methods- Overrides:
display
in classExternalObject
- Parameters:
params
- Parameters- Returns:
- Typically JSON object or array
-
-