Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If query fields are important to your API (which is likely since you need to allow them to be accepted in the first place) you'll want to retrieve the value of each query field. This could be done by parsing the full URL yourself (which is automatically stored in the FullEndpointURL variable). However, we recommend you use the GetQueryField service (which is a member of the HTTP_Services module). Here is what our code might look like:

...

Info

Unlike query fields, header fields are not case-sensitive.

Request Body

While query fields and request header fields must conform to the patterns noted in the HTTP specification, parameters in the request body are always developer-defined and must be documented carefully. It is impossible to cover every possible possible response format and media type, so we'll focus on the two most likely cases: JSON (e.g., {"status" : "active"}) and XML (e.g., <status>active</status>). Regardless of the media type, use the GetHTTPValue service to retrieve the content of the body and then parse the data with the best tools available.

If the response body is formatted as JSON, we recommend using the SRP_JSON library to parse and retrieve the parameter value. Here is a simple example:

Code Block
languagebp
Body    = HTTP_Services('GetHTTPPostString')
If SRP_JSON(objBody, 'Parse', Body) EQ '' then
    CustStatus  = SRP_JSON(objBody, 'GetValue', 'status')
    SRP_JSON(objBody, 'Release')
end

For an XML formatted response body, we recommend using the SRP_Extract_XML library. Again, here is a simple example:

Code Block
languagebp
Body        = HTTP_Services('GetHTTPPostString')
CustStatus  = SRP_Extract_XML(Body, 'status/text()')