Supported HTTP Methods

The most commonly used HTTP methods (or verbs) are GET, POST, PATCH, and DELETE. The building blocks of REST APIs, these methods define actions applied to REST resources using their URLs. See Custom Actions for more information.

Note:

  • Oracle recommends that you periodically review if your REST request requirements have changed. Also check with your service administrator if any capacity adjustments or other changes are required in your service configuration.
  • Child resources usually inherit security privileges from their parent resource. Therefore, to use a method on a child resource, you may need to have access to use that method on the parent resource. However, there may be some child resources with different privilege requirements to access them.

The following table lists the methods and their scope for singular and collection resources.

Method Works with a Singular Resource? Works with a Collection Resource?

GET

Yes. Gets a single resource.

Yes. Gets a subset, or all of the resources in the collection.

POST

No.

Yes. Creates a new resource in the collection.

PATCH

Yes. Updates a resource.

No.

DELETE

Yes. Deletes a resource.

No.

Supported HTTP Methods for SCIM Resources

The following table lists the methods and their scope for SCIM resources.

SCIM Resource GET POST PUT PATCH DELETE Filtering
Users Yes Yes Yes Yes Yes Yes
Roles Yes No No Yes No Yes
Bulk No Yes Yes Yes Yes Yes
Schemas Yes No No No No No
ResourceTypes Yes No No No No No

Supported HTTP Methods for BPM Resources

You can do the basic create, read, update and delete operations on BPM resources using the GET, POST, PUT, and DELETE methods.

The GET Method

Use this method to retrieve information from a resource. To query both a singular resource and a collection resource, use expand, fields, and onlyData query parameters. To filter the queried result, use different parameters for a singular resource and a collection resource.

The list of parameters for querying singular and collection resources are:

expand

Gets the child resources along with the parent resource when you query a hierarchical resource. The server doesn't return child resources by default. The valid values include:

  • Name of a single child resource.
  • Comma-separated list of child resource names to specify multiple values.
  • Keyword all to expand all child resources.

Starting in REST framework version 3, the expand parameter returns the child resource items as a collection resource to support pagination of the collection. This parameter applies to both singular and collection resources.

Example URL

/fscmRestApi/resources/<version>/invoices/359240?expand=invoiceLines

Example Response Body

{
    "InvoiceId": 359240,
    "InvoiceNumber": "Withholding tax - 300100170737078-2",
    "InvoiceCurrency": "THB",
    "PaymentCurrency": "THB",
    "InvoiceAmount": 5,
	. . .
    "invoiceLines": {
        "items": [
            {
                "LineNumber": 1,
                "LineAmount": 5,
                "AccountingDate": "2018-12-06",
                . . .
                "links": [
                    {
                        "rel": "self",
                    . . . 
    }
}

fields

Gets information for the specified fields. The valid values include:

  • Name of a single property.
  • Comma-separated list of property names to specify multiple values.

Starting in REST framework version 3, the fields parameter returns the child resource items as a collection resource to support pagination of the collection. This parameter applies to both singular and collection resources.

onlyData

Indicates whether the retrieved data contains only resource field values without links. The default value is false, indicating that the retrieved data contains links by default. This parameter applies to both singular and collection resources.

Example URL

/fscmRestApi/resources/<version>/announcements/300100090149733?onlyData=true

Example Response Body

{
"AnnouncementId": "300100090149733",
"CategoryCode": "OF",
"CreatedBy": "SEED_DATA_FROM_VERTICAL",
"CreationDate": "2017-05-18T08:51:04.001+00:00",
"ExpireDate": "2017-05-19T00:00:00+00:00",
"ExpiryDaysFlag": null,
"LastUpdateDate": "2017-05-18T08:51:07.609+00:00",
"LastUpdateLogin": "4FC58160B86257BCE0539D06F10A598C",
"LastUpdatedBy": "SEED_DATA_FROM_VERTICAL",
"ObjectVersionNumber": 1,
"StartDate": "2017-05-18T00:00:00+00:00",
"Subject": "meeting at 4pm ",
"Description": "meeting at 4pm",
   ...  
}

limit

Positive integer value that specifies the maximum number of items that a server returns. The server might override this value to improve application performance. If the client request doesn't specify a limit value, then the server uses the default limit value of 25. This parameter applies only to collection resources.

offset

Positive integer value that specifies the index of the first item to be returned. Default value is 0. This parameter applies only to collection resources. For example:
  • If offset=0, the response contains all the resources, starting from the first item in the collection.
  • If offset=10, the response contains resources starting from the 11th item.

q

Specifies a filter for the items to be returned from the collection. This parameter applies only to collection resources.

In REST framework version 1, the query parameter is used in the where clause and contains one or more expressions separated by a semicolon. For example: q=deptno>=10 and <= 30;loc!=NY.

Supported operators in REST framework version 1:

  • = (Equal to)
  • > (Greater than)
  • < (Less than)
  • >= (Greater than or equal to)
  • <= (Less than or equal to)
  • != (Not equal to)
  • AND (And)
  • OR (Or)
  • NOT (Not)
  • LIKE (Like)

The allowed special characters in REST framework version 1:

  • " (double quotation mark) and ' (single quotation mark) to define a literal.
  • \ (backslash) to define an escape character.
  • * (asterisk) to define a wildcard character.

For REST framework version 2 and later, the query parameter accepts a rowmatch expression format that identifies the specific rows to retrieve from the resource.

The supported operators in REST framework version 2 and later also include:
  • <> (Not equal to)
  • BETWEEN (between)
  • NOT BETWEEN (Not between)
  • IN (in)
  • NOT IN (Not in)
  • IS NULL
  • NOT NULL
The allowed special characters in REST framework version 2 and later:
  • " (double quotation mark) and ' (single quotation mark) to define a literal.
  • \ (backslash) to define an escape character.
  • % (percent) to define a wildcard character.

totalResults

Boolean value that indicates whether to include the total number of search records that match the query in the response. Default value is false. This parameter applies only to collection resources.

Example URL

/fscmRestApi/resources/version/announcements?totalResults=true&limit=5

Example Response Body

{
    "items": [],
    "totalResults": 55,
    "count": 5,
    "hasMore": true,
    "limit": 5,
    "offset": 0,
    "links": []
}

orderBy

Specifies the order of the items in the response payload. This parameter applies only to collection resources. For details, see Sort.

finder

Uses the predefined where clause that includes certain bind parameters to search the collection. This parameter applies only to collection resources.

For example, the announcements resource defines a finder named PrimaryKey, with one of the bind parameters named AnnouncementId. A client can use this finder to fetch an announcement with a specific identifier.

For example:

finder=PrimaryKey;AnnouncementId=300100015957778

In this command, the format of the query parameter value is:

<finder>;<attr1>=<val1>,<attr2>=<val2>.

dependency

Used for the list-of-values (LOV) resources. This parameter applies only to collection resources. For example, a location resource includes the following Country and State fields:
{
"Country" : "US",
"State" : "CA"
}

The location resource gets values for the State field from the States resource, which includes a list of values that depend on the Country resource. Assume you change the country to BR in the client. To display the new valid list of states, the client sends a request to the server that uses BR in the Country field and gets the associated state list.

States?dependency=Country=BR

The POST Method

Use to create a new item in a resource. The request media type is:

application/vnd.oracle.adf.resourceitem+json

Note:

You can update an existing record or create a new record in a single POST request using the Upsert-Mode header. If you set the Upsert-Mode header to true in the request and an item matches with the values specified in the request, the record is updated. Otherwise, the REST framework creates a new record. For the upsert functionality to work, ensure that the request contains the mandatory attributes of the resource required to create a resource.

The PATCH Method

Use to update data in a resource. The PATCH method updates only the fields specified in the request body. The request media type is:

application/vnd.oracle.adf.resourceitem+json

The DELETE Method

Use to delete a resource. The method doesn't require a request body.

Custom Actions

A resource might expose a custom action that isn't the standard Create, Read, Update, and Delete (CRUD) action. For example, any custom object functions that are created on standard objects using Application Composer are available as custom actions. A custom action is always initiated using a POST method.

The relevant request media type is:

application/vnd.oracle.adf.action+json

The response media type is:

application/vnd.oracle.adf.actionresult+json

The following request always contains a custom action and optionally, an array of input parameters for the custom action:

application/vnd.oracle.adf.action+json

The JSON schema of the media type is:


{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "title": "Action execution representation.",
    "description": "Represents the action execution and its parameters.",
    "properties": {
        "name": {
            "type": "string",
            "description": "Action name."
        },
        "parameters": {
            "type": "array",
            "description": "Parameter name/value pair.",
        }
    },
    "required": [
        "name"
    ]
}