Request Data Types

Request data may be encoded into several primitive types. Since all data is eventually represented as UTF-8 strings, these types mostly define what characters are considered valid for data of a specific type. Additional validation rules may apply for specific parameters.

  • Boolean - A case insensitive Boolean value, represented as either “TRUE” or “FALSE”.

  • Integer - An integer (whole number).

  • String - A string of characters.

  • TimeStamp - The time and date represented in RFC-882/RFC-1123 format (e.g. “Sun, 06 Nov 1994 08:49:37 GMT“). The time and date must always be represented in the GMT time zone, even if the server or client uses a different default time zone.

  • Array - An array of values. Arrays are encoded by adding square brackets with an incrementing 0-based index number to the parameter name. For example, the array parameter fruits = (apple”, “orange”, “banana”) is to be represented as follows:

fruits[0]=apple&fruits[1]=orange&fruits[2]=banana

Since request parameter names must be URL-encoded, the above parameter will actually be sent as:

fruits%5B0%5D=apple&fruits%5B1%5D=orange&fruits%5B2%5D=banana

  • Hashmap - A hash map (associative array) of values. Hashmaps are encoded using square brackets after the parameter name, with a key name inside the square brackets (unlike the Array type in which a number based index is used).
    For example, the hash map UserInfo = { name: Tuco, lastname: Ramirez } will be represented as follows:

UserInfo[name]=Tuco&UserInfo[lastname]=Ramirez

Since request parameter names must be URL encoded, the above parameter will actually be sent as:

UserInfo%5Bname%5D=Tuco&UserInfo%5Blastname%5D=Ramirez