Application service module that provides simple CRUD operations for resources that map directly to database tables.

Syntax

Response = HTTP_Resource_Services(@Service, @Params)

Returns

The meaning of the response value depends on the service.

Parameters

ParameterDescription
@ServiceThe name of the service being requested. Required.
@ParamsGeneric parameters. Refer to a specific service to determine the actual parameters used.

Remarks 

HTTP_Resource_Services is a helpful application service module that web service routines can use to perform common database operations. This works well for web services that are tightly associated with a single database table. For example, a URL with /customers is likely to be directly linked to a CUSTOMERS database table.

Both the included 3.x - HTTP_Users_Services and 3.x - HTTP_Contacts_Services sample web service routines make use of HTTP_Resource_Services.

Services

ServiceDescription
GetDatabaseItem

Usage:
HTTP_Resource_Services('GetDatabaseItem', TableName, SelfURL, KeyID, ColumnNames, ItemArrayLabel)

Comments:
Gets the resource item from a database table. The format will be HAL+JSON.

Returns:
A database row in HAL+JSON format.

GetDatabaseItems

Usage:
HTTP_Resource_Services('GetDatabaseItems', Filter, TableName, SelfURL, ColumnNames, ItemArrayLabel)

Comments:
Gets the resource items from a database table. The format will be HAL+JSON.

Returns:
Database rows in HAL+JSON format.

DeleteDatabaseItem

Usage:
HTTP_Resource_Services('DeleteDatabaseItem', TableName, KeyID)

Comments:
Deletes the resource item from a database table.

Returns:
N/A

PutDatabaseItem

Usage:
HTTP_Resource_Services('PutDatabaseItem', TableName, SelfURL, KeyID, AllowedColumnNames)

Comments:
Creates a new or updates a specific resource item in the database table. To conform to the requirements of the PUT method, the entire resource will be replaced with the content being passed in, even if only a few properties (e.g., database columns) are being updated. Thus, it is assumed that both changed and unchanged properties will be passed into the request body.

Returns:
N/A

PostDatabaseItem

Usage:
HTTP_Resource_Services('PostDatabaseItem', TableName, SelfURL, AllowedColumnNames)

Comments:
Creates a new resource item in the database table. To conform to the requirements of the POST method, the Key ID will be created automatically by the server and the entire resource will be created with the content being passed in.

Returns:
N/A

PatchDatabaseItem

Usage:
HTTP_Resource_Services('PatchDatabaseItem', TableName, SelfURL, KeyID, AllowedColumnNames)

Comments:
Updates a specific resource item in the database table. To conform to the requirements of the PATCH method, only specific properties (e.g., database columns) of the resource will be updated. All properties not identified will be left alone.

Returns:
N/A

GetColumnNames

Usage:
HTTP_Resource_Services('GetColumnNames', TableName, ColumnNames)

Comments:
Gets the column names from the dictionary of the table provided that will be used to create the resource. If the ColumnNames argument is used then this service will validate the list as valid columns. In either case, the following rules will be applied:

  • Regardless of the case used to in the ColumnNames argument it will be upper cased to match against the dictionary names correctly.
  • All column names will be returned in lower case.
  • All column names bound to a Key ID of part 0 (i.e., the entire key) will be removed.
  • All non-master column names will be removed to avoid duplicates.
  • SRP FrameWorks audit column names (MODIFIED_BY, MODIFIED_DATE, and MODIFIED_TIME) will be removed.

Returns:
An @FM delimited list of database column names.

GetColumnValues

Usage:
HTTP_Resource_Services('GetColumnValues', TableName, ColumnNames, ItemID)

Comments:
Gets the column values from the database row from the provided table and ID that will be used to create the resource. This is returned as an @FM delimited list of values.

Returns:
An @FM delimited list of database column values for a specific Key ID.

GetMVGroupNames

Usage:
HTTP_Resource_Services('GetMVGroupNames', TableName, ColumnNames)

Comments:
Gets the MV group names for the dictionary columns passed in. Note: the ColumnNames argument should be the same list that was returned from the GetColumnNames service. This will return an @FM delimited list of MV group names. Thus, for non-multivalue fields, the values will be empty. The MV group names will be returned in lower case. Gets the column values from the database row from the provided table and ID that will be used to create the resource. This is returned as an @FM delimited list of values.

Returns:
An @FM delimited list of MV group names.

Params

The proper use of the generic arguments are defined in the definition of each service above.

  • No labels