REST.delete: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
No edit summary
m (Taustin moved page rEST.delete to REST.delete without leaving a redirect)
 
(7 intermediate revisions by 4 users not shown)
Line 2: Line 2:
|name=REST.delete
|name=REST.delete
|trusted=true
|trusted=true
|version=1.5
|version=1.5.0
|compatibility=1.5.7
|description=
|description=
Perform an HTTP delete request to the specified URL to delete the specified resource.
Perform an HTTP delete request to the specified URL to delete the specified resource.


|usage=
|usage=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
REST.delete(url, getFullResponse)
REST.delete(url, payload, mediaType, getFullResponse)
REST.delete(url, headers, getFullResponse)
REST.delete(url, payload, mediaType, headers, getFullResponse)
</source>
</syntaxhighlight>


'''Parameters'''
'''Parameters'''
{{param|url|String containing the URL to the resource or collection of resources.}}
{{param|url|String containing the URL to the resource or collection of resources.}}
{{param|payload|JSON object containing the key:value pairs.}}
{{param|mediaType|String containing a MIME type and charset. See example, but note that any character encoding other than {{code|UTF-8}} will be extremely difficult to produce in MapTool.}}
{{param|headers|JSON object containing header key:value pairs.}}
{{param|headers|JSON object containing header key:value pairs.}}
{{param|getFullResponse|Boolean (0:1). True(1) to get full response.}}
{{param|getFullResponse|Boolean (0:1). True(1) to get full response.}}
'''Returns'''
'''Returns'''
HTTP response as JSON (if full response) or server response, usually JSON but can be XML, HTML, or other formats.
HTTP response as JSON (if full response) or server response, usually JSON but can be XML, HTML, or other formats.


'''Note:''' The delete request returns an empty string if the full response is not requested.
'''Note:''' The delete request returns an empty string for status 204 if the full response is not requested.


|example=
|example=
Delete the indicated resource.
Delete the indicated resource:
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: baseURL = "https://reqres.in"]
[h: baseurl = "https://reqres.in"]
[h: path = "/api/users/2"]
[h: path = "/api/users"]
 
[h: mediaType = "application/json; charset=utf-8"]
[r: response = REST.delete(baseURL + path, 1)]
[h: getFullResponse = 1]
<br><br>
[r: response = REST.delete(baseURL + path, 0)]
[h: payload = '{ "name": "smith", "job": "agent" }']
</source>
[h: response = REST.delete(baseurl + path, payload, mediaType, getFullResponse)]
<br>
<pre>
[r: json.indent(response, 2)]
</pre>
</syntaxhighlight>
Returns:
Returns:
<source lang="mtmacro" line>
Note the 204 - No Content status and thus no "body" element in the JSON. If the <code>getFullResponse</code> parameter had been 0, an empty string would have been returned.
<syntaxhighlight lang="mtmacro" line>
Full Response: {
Full Response: {
   "status": 204,
   "status": 204,
   "headers":  {
   "headers":  {
     "access-control-allow-origin": ["*"],
     "access-control-allow-origin": ["*"],
     "cf-ray": ["4b928693e9805414-LAX"],
    "cf-cache-status": ["DYNAMIC"],
     "date": ["Sun, 17 Mar 2019 22:50:25 GMT"],
     "cf-ray": ["533501e1ee362a47-SEA"],
     "date": ["Sun, 10 Nov 2019 03:40:51 GMT"],
     "etag": ["W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""],
     "etag": ["W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""],
     "expect-ct": ["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],
     "expect-ct": ["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],
     "server": ["cloudflare"],
     "server": ["cloudflare"],
     "set-cookie": ["__cfduid=dc5a1bd174f8f46cb9721f3a3338cff631552863025; expires=Mon, 16-Mar-20 22:50:25 GMT; path=/; domain=.reqres.in; HttpOnly"],
     "set-cookie": ["__cfduid=d6d2ff57f7c34e64294da00c51c3b9e3b1573357250; expires=Mon, 09-Nov-20 03:40:50 GMT; path=/; domain=.reqres.in; HttpOnly; Secure"],
    "via": ["1.1 vegur"],
     "x-powered-by": ["Express"]
     "x-powered-by": ["Express"]
   }
   }
}
}
</source>
</syntaxhighlight>


|also=
|also=
Line 53: Line 65:


|changes=
|changes=
* '''1.5''' - Added to main MapTool build.
* '''1.5.7''' - Altered parameters to line up with other REST functions.
}}
}}
[[Category:RESTful Function]]
[[Category:RESTful Function]]

Latest revision as of 16:24, 10 May 2023

REST.delete() Function

 Note: This function can only be used in a Trusted Macro

Introduced in version 1.5.0
Last checked for compatibility with version 1.5.7
Perform an HTTP delete request to the specified URL to delete the specified resource.

Usage

REST.delete(url, payload, mediaType, getFullResponse)
REST.delete(url, payload, mediaType, headers, getFullResponse)

Parameters

  • url - String containing the URL to the resource or collection of resources.
  • payload - JSON object containing the key:value pairs.
  • mediaType - String containing a MIME type and charset. See example, but note that any character encoding other than UTF-8 will be extremely difficult to produce in MapTool.
  • headers - JSON object containing header key:value pairs.
  • getFullResponse - Boolean (0:1). True(1) to get full response.

Returns HTTP response as JSON (if full response) or server response, usually JSON but can be XML, HTML, or other formats.

Note: The delete request returns an empty string for status 204 if the full response is not requested.

Example

Delete the indicated resource:
[h: baseurl = "https://reqres.in"]
[h: path = "/api/users"]
[h: mediaType = "application/json; charset=utf-8"]
[h: getFullResponse = 1]
 
[h: payload = '{ "name": "smith", "job": "agent" }']
 
[h: response = REST.delete(baseurl + path, payload, mediaType, getFullResponse)]
 
<br>
<pre>
[r: json.indent(response, 2)]
</pre>

Returns: Note the 204 - No Content status and thus no "body" element in the JSON. If the getFullResponse parameter had been 0, an empty string would have been returned.

Full Response: {
  "status": 204,
  "headers":   {
    "access-control-allow-origin": ["*"],
    "cf-cache-status": ["DYNAMIC"],
    "cf-ray": ["533501e1ee362a47-SEA"],
    "date": ["Sun, 10 Nov 2019 03:40:51 GMT"],
    "etag": ["W/\"2-vyGp6PvFo4RvsFtPoIWeCReyIC8\""],
    "expect-ct": ["max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""],
    "server": ["cloudflare"],
    "set-cookie": ["__cfduid=d6d2ff57f7c34e64294da00c51c3b9e3b1573357250; expires=Mon, 09-Nov-20 03:40:50 GMT; path=/; domain=.reqres.in; HttpOnly; Secure"],
    "via": ["1.1 vegur"],
    "x-powered-by": ["Express"]
  }
}

See Also

Version Changes

  • 1.5.7 - Altered parameters to line up with other REST functions.